91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

进贤县| 灵寿县| 天镇县| 英德市| 德惠市| 乐平市| 南昌县| 昆山市| 博湖县| 抚远县| 基隆市| 南城县| 东乡| 晋江市| 阜康市| 阳信县| 屏山县| 丹阳市| 鲁山县| 蒙自县| 报价| 故城县| 饶河县| 开封县| 云梦县| 应城市| 新安县| 原阳县| 云霄县| 邯郸市| 峨山| 石阡县| 郑州市| 长治市| 呼图壁县| 克什克腾旗| 阿图什市| 修文县| 仪征市| 乡宁县| 衡山县|