rabbitmq消息缺失調研整合歸納

一:常用四種解決消息丟失的方案: (參考網站) https://www.jianshu.com/p/19e0927315da
1.消息持久化:
Exchange 設置持久化:durable:true
Queue 設置持久化
Message持久化發送
2.ACK確認機制
消息發送確認
消息接收確認


二:確認機制修改(消息確認接收))
rabbitmq  :消息缺失調研:

RabbitMQ丟失消息的一個原因(參考別人網友博客,整理歸檔)

今天發現RabbitMQ發送消息成功,但是接受消息的時候,根本接受不到。
查看網頁控制後臺界面,發現它被自動ack了。 實際上,我設置的消費者是設置autoAck=false的。 平均每4條消息,會丟失一條。
什麼原因呢?

各自操作,各自confirm,包括producer的確認和consumer的ack都做了。然後就是消息丟失的問題解決不了。

後面發現,我把這條隊列queue刪除後,新建一個這樣的隊列。然後操作。就不會丟消息了。
說明rabbitmq 有時候會不穩定,會丟失消息。這時候刪掉隊列並重新新建隊列就可以正常運行了

這種原因是不是很尷尬?_
其他的,如果自己沒消費端進行ack的,生產端沒有進行confirm的原因,請先自查。

springboot項目配置手動確認 : (參考網站)  https://www.cnblogs.com/nizuimeiabc1/p/9397326.html
消息接收確認
(1)確認模式

AcknowledgeMode.NONE:不確認
AcknowledgeMode.AUTO:自動確認
AcknowledgeMode.MANUAL:手動確認
spring-boot中配置方法:


(2)配置手動確認(springboot)
spring.rabbitmq.listener.simple.acknowledge-mode = manual

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