Rabbit发送消息,消费者消费异常
生活随笔
收集整理的這篇文章主要介紹了
Rabbit发送消息,消费者消费异常
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Rabbit發送消息,消費者消費異常
背景:
在步驟1下創建訂單,步驟2下提交消息
原因:事務導致數據未提交,消費者監聽到消息,使用訂單ID查詢訂單失敗
解決:直接提交unifyOrder對象,消費者直接使用創建的order
(注意:如果在received 中還像第一版直接轉自定義對象,消息進程會報錯)
解決方案是使用Jackson2JsonMessageConverter 。在發送消息時,它會先將自定義的消息類序列化成json格式,再轉成byte構造 Message
//發送 設置Converter@Beanpublic RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {RabbitTemplate template = new RabbitTemplate(connectionFactory);template.setMessageConverter(new Jackson2JsonMessageConverter());return template;}@Beanpublic SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(ConnectionFactory connectionFactory) {SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();factory.setConnectionFactory(connectionFactory);factory.setMessageConverter(new Jackson2JsonMessageConverter());return factory;}//消費時 指定Converter@RabbitListener(bindings = {@QueueBinding(value = @Queue(value = "queue-order"),exchange = @Exchange(value = "exchange-order"),key = "rkey-order")},containerFactory="rabbitListenerContainerFactory")參考:https://www.cnblogs.com/timseng/p/11688019.html
總結
以上是生活随笔為你收集整理的Rabbit发送消息,消费者消费异常的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jenkins使用哪个版本号_Linux
- 下一篇: html如何做卷展菜单,3DMax“对象