RocketMq訊息丟失問題解決
分享一個連結:https://www.zhihu.com/tardis/sogou/art/166426241
這個圖很好,基本上就是這個問題的解決思路。我這裡總結一下:
為什麼會訊息丟失?
- 儲存在佇列中,如果佇列沒有對訊息持久化,RabbitMQ伺服器當機重啟會丟失資料。
- 生產者傳送訊息到RabbitMQ伺服器過程中,RabbitMQ伺服器如果當機停止服務,訊息會丟失。
- 消費者從RabbitMQ伺服器獲取佇列中儲存的資料消費,但是消費者程式出錯或者當機而沒有正確消費,導致資料丟失。
解決方法:1.訊息持久化(Exchange交換機持久化 Queue持久化)
訊息持久化可以防止訊息在MQ Server中不會因為當機重啟而丟失。
2.訊息確認機制(confirm機制,事務機制)
(1)confirm機制:通過兩個回撥函式確認confirm(),returnedMessage();
首先在配置檔案中配置,接著需要定義回撥方法。
confirm模式,作用是為了保證生產者投遞到Mq不會出現訊息丟失。
(2)事務機制:首先在配置檔案中配置,然後編寫消費者的監聽器
相關文章
- RocketMQ訊息丟失解決方案:事務訊息MQ
- RocketMQ訊息丟失解決方案:同步刷盤+手動提交MQ
- 解決RabbitMQ訊息丟失與重複消費問題MQ
- RocketMQ的訊息是怎麼丟失的MQ
- 如何處理RabbitMQ 訊息堆積和訊息丟失問題MQ
- RabbitMQ防止訊息丟失MQ
- RabbitMQ:訊息丟失 | 訊息重複 | 訊息積壓的原因+解決方案+網上學不到的使用心得MQ
- JavaScript中解決計算精度丟失的問題JavaScript
- SpringCloud解決feign呼叫token丟失問題SpringGCCloud
- 《RabbitMQ》 | 訊息丟失也就這麼回事MQ
- RabbitMq如何確保訊息不丟失MQ
- Nginx session丟失問題處理解決方法NginxSession
- 前後端分離解決session跨域丟失問題後端Session跨域
- RocketMQ普通訊息MQ
- RabbitMQ-如何保證訊息不丟失MQ
- 【RocketMq】商用RocketMq和開源RocketMq的相容問題解決方案MQ
- 【RocketMQ】高階使用:四個問題詳解事務訊息MQ
- 解決百度編輯器在編輯視訊時src丟失的問題
- 《RabbitMQ》| 解決訊息延遲和堆積問題MQ
- 解決alertmanager重複傳送訊息的問題
- Vuex資料頁面重新整理丟失問題解決方案Vue
- 資料庫高可靠,輕鬆解決事務丟失問題資料庫
- 解析 RocketMQ 業務訊息——“事務訊息”MQ
- 解析 RocketMQ 業務訊息--“順序訊息”MQ
- RabbitMQ,RocketMQ,Kafka 事務性,訊息丟失和訊息重複傳送的處理策略MQKafka
- php公眾號開發,訊息丟失的原因和解決辦法PHP
- RocketMQ訊息權重MQ
- RocketMQ -- 訊息拉取MQ
- 聊聊 RocketMQ 訊息軌跡MQ
- [訊息佇列]rocketMQ佇列MQ
- 【Socket】解決UDP丟包問題UDP
- RocketMQ 訊息整合:多型別業務訊息-普通訊息MQ多型型別
- RabbitMQ訊息佇列入門及解決常見問題MQ佇列
- Golang浮點數精度丟失問題擴充套件包解決方案Golang套件
- Redis SortedSet結構score欄位丟失精度問題解決辦法Redis
- 記錄--前端金額運算精度丟失問題及解決方案前端
- 解決Oracle資料庫日誌檔案丟失恢復問題Oracle資料庫
- 用getChildFragmentManager解決Fragment巢狀Fragment資料丟失的問題Fragment巢狀