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

给RABBITMQ发送消息时,设置请求头HEADER
强烈推介IDEA2021.1.3破解激活,IntelliJ IDEA 注册码,2021.1.3IDEA 激活码  

大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说给RABBITMQ发送消息时,设置请求头HEADER,希望能够帮助大家进步!!!

默认如下:

content-type:text/plain

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

要求如下:

 content-type:application/json

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

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

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

  2. message.getMessageProperties().setContentType("application/json");

  3. message.getMessageProperties().setContentEncoding("UTF-8");

  4. return message;

  5. };

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

 
  1. public static void sendMessageByJson(String exchangeName, String routingkey, Object msg){

  2. amqpTemplate.convertAndSend(exchangeName, routingkey, msg, messagePostProcessor);

  3. }

至此完成要求!

本文来源huayang183,由架构君转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处:https://javajgs.com/archives/18061

发表评论