RabbitMQ自定义消息Properties

消息Message本质上是一段数据,由Properties和Payload(Body)组成,Java代码中,可以利用AMQP.BasicProperties对象构造消息Properties,例如

Map<String,Object> headers = new HashMap<>();
headers.put("myFirstHead","111");

AMQP.BasicProperties properties = new AMQP.BasicProperties().builder()
                .deliveryMode(2)	//2代表可持久化 填1为加载到内存即可
                .contentEncoding("UTF-8")	//编码设置
                .expiration("15000")	//设置ttl时间
                .headers(headers)	//自定义头信息,headers是上面的map实例
                .build();	//最后加上build()
//还有很多属性,不再一一介绍,可以到官网查看。

那么该如何在消费端获取你的Properties以及自定义的Headers呢?

// 创建消费者
QueueingConsumer queueingConsumer = new QueueingConsumer(channel);

// 消费,同样没有自定义消费者,这种做法不太优雅
channel.basicConsume(queueName,true,queueingConsumer);

// 获取delivery对象,从delivery对象中拿到properties以及body
QueueingConsumer.Delivery delivery = queueingConsumer.nextDelivery();

Map<String,Object> map = delivery.getProperties().getHeaders();
// 这个map便是你定义Properties中自定义的headers
// 通过get等方法可以对其进行进一步操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值