给RABBITMQ发送消息时,设置请求头HEADER

背景:最近在做项目时使用到rabbitMq,并且要适配外部的系统,我们内部系统MQ所用的消息格式一直是默认格式。但是和对方对接的时候不符合要求,需改动。

默认如下:

content-type:text/plain

要求如下:

 content-type:application/json

解决方法如下(针对消息的生产者):

在MessagePostProcessor中给message的头做自定义处理(这个功能类似于spring的BeanPostProcessor)对消息的扩展处理,个人认为rabbitMq应该是参考spring的实现方法去实现的。
  private final static MessagePostProcessor messagePostProcessor = message -> {
        message.getMessageProperties().setContentType("application/json");
        message.getMessageProperties().setContentEncoding("UTF-8");
        return message;
    };

 然后在发送消息给消费者时候带上自己的自定义的消息头:

 public static void sendMessageByJson(String exchangeName, String routingkey, Object msg){
        amqpTemplate.convertAndSend(exchangeName, routingkey, msg, messagePostProcessor);
    }

至此完成要求!

参考文章:

https://www.cnblogs.com/theRhyme/p/9724091.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值