中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mq消息丟失問題如何解決

發布時間:2022-09-27 16:05:48 來源:億速云 閱讀:311 作者:iii 欄目:數據庫

這篇“mq消息丟失問題如何解決”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“mq消息丟失問題如何解決”文章吧。

1.生產者存放消息的過程中丟失消息

mq消息丟失問題如何解決

解決辦法:

(1)事務機制:(同步方式,不推薦)

對于RabbitMQ消息隊列來說,生產者發送數據之前開啟RabbitMQ的事務機制 channel.txselect,如果消息沒有進隊列,則生產者受到異常報錯,并進行回滾channel.txRollback,然后重試發送消息。如果收到了消息,則可以提交事務channel.txCommit。這是同步操作,會影響性能。

(2)異步機制:

confirm模式來解決同步機制的性能問題。每次生產者發送的消息都會分配一個唯一的id,如果寫入到了RabbitMQ隊列中,則RabbitMQ會回傳一個ack消息,說明這個消息接收成功。如果RabbitMQ沒能處理這個消息,則回調nack接口。說明需要重試發送消息。

也可以自定義超時時間 + 消息 id 來實現超時等待后重試機制。但可能出現的問題是調用ack接口時失敗了,所以會出現消息被發送兩次的問題,這個時候就需要保證消費者消費消息的冪等性。

事務模式和confirm模式的區別:

事務機制是同步的,提交事務后悔被阻塞直到提交事務完成后。

confirm 模式異步接收通知,但可能接收不到通知。需要考慮接收不到通知的場景。

2.消息隊列消息丟失

mq消息丟失問題如何解決

解決辦法:

(1)創建Queue時,將其設置為持久化

(2)發送消息的時候將消息的deliveryMode設置為2(將消息持久化 1:非持久化,2:持久化)

(3)開啟生產者 confirm`模式,可以重試發送消息。

3.消費者丟失消息

mq消息丟失問題如何解決

解決辦法:

關閉RabbitMQ的自動ack,每次生產者將消息寫入消息隊列后,就自動回傳一個ack給生產者。

消費者處理完消息再主動ack,告訴消息隊列我處理完了。

4.總結

(1)開啟生產者消息手動確認機制

(2)開啟消息持久化,隊列持久化,交換機持久化(默認開啟)

(3)開啟消費者消息手動確認機制

以上就是關于“mq消息丟失問題如何解決”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

mq
AI

晋州市| 景宁| 南安市| 涟源市| 桦南县| 榆社县| 疏勒县| 武陟县| 双江| 常德市| 宕昌县| 饶河县| 罗江县| 贵德县| 阿鲁科尔沁旗| 巨野县| 景泰县| 武宁县| 英德市| 鹤山市| 子长县| 北流市| 建阳市| 祁门县| 蛟河市| 凤城市| 延庆县| 黔江区| 兰溪市| 娱乐| 梓潼县| 寿宁县| 甘肃省| 澄江县| 通州市| 延边| 潮安县| 离岛区| 七台河市| 长武县| 东海县|