給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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章