真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

RabbitMQ中怎么處理各種消息類型

這期內容當中小編將會給大家?guī)碛嘘PRabbitMQ中怎么處理各種消息類型,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)公司長期為數(shù)千家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為泰來企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站設計,泰來網(wǎng)站改版等技術服務。擁有十年豐富建站經驗和眾多成功案例,為您定制開發(fā)。

Map消息

RabbitMQ中怎么處理各種消息類型

如果發(fā)送的消息類型是map類型,可以通過SerializationUtils.deserialize方法將消息轉換成map類型。

字符串類型(含json格式)

RabbitMQ中怎么處理各種消息類型

默認情況下RabbitMQ發(fā)送的消息是為字節(jié)碼,有時我們需要發(fā)送JSON格式的消息,則有如下兩種處理方式。

手動轉換成json

@Autowiredprivate ObjectMapper objectMapper;
public void sendOrder(Order order) {    try {        String orderJson = objectMapper.writeValueAsString(order);        Message message = MessageBuilder                            .withBody(orderJson.getBytes())                            .setContentType(MessageProperties.CONTENT_TYPE_JSON)                            .build();        this.rabbitTemplate.convertAndSend(RabbitConfig.QUEUE_ORDERS, message);    } catch (JsonProcessingException e) {        e.printStackTrace();    }}

但是在每一個發(fā)送消息的地方都這樣寫就會很繁瑣。

使用MessageConvert自動轉換為json

如果規(guī)定了消息的格式為JSON,并使用消息轉換器,則會自動將消息轉化為json格式而不需要每次手動進行轉換。RabbitTemplate默認使用SimpleMessageConverter作為自己的消息轉化器,而SimpleMessageConverter并不能滿足json消息的需求。我們可以使用Jackson2JsonMessageConverter作為默認的消息轉換器。

為RabbitTemplate配置MessageConverter:

@Configurationpublic class RabbitConfig {
   @Bean    public RabbitTemplate rabbitTemplate(final ConnectionFactory connectionFactory) {        final RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);        rabbitTemplate.setMessageConverter(jsonMessageConverter());        return rabbitTemplate;    }
   @Bean    public Jackson2JsonMessageConverter jsonMessageConverter() {        return new Jackson2JsonMessageConverter();    }}

通過String類的構造函數(shù)接收byte[]類型的消息數(shù)據(jù),獲得jsonStr后可以轉換成其它類,然后再進行相關操作。

這里@RabbitListener注解在方法上,如果類中有多個@RabbitListener(queues = TopicRabbitmqConfig.EVENT_MSG_QUEUE_NAME)注解的方法,測試的結果是輪流的調用。

另一種接收方式

RabbitMQ中怎么處理各種消息類型

注意,這里RabbitListener注解在類上,方法中通過@RabbitHandler注解標識。

spring boot與rabbitmq

三豐,公眾號:soft張三豐spring boot與RabbitMQ  

控制臺

打開 RabbitMQ web 控制臺,也可以看到剛才我們在代碼里面配置的交換器和隊列,以及綁定信息。

RabbitMQ中怎么處理各種消息類型

查看交換器的詳情

RabbitMQ中怎么處理各種消息類型

查看隊列

RabbitMQ中怎么處理各種消息類型

上述就是小編為大家分享的RabbitMQ中怎么處理各種消息類型了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


本文名稱:RabbitMQ中怎么處理各種消息類型
標題網(wǎng)址:http://weahome.cn/article/popcei.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部