黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 解決mq消息丟失問題的方案

解決mq消息丟失問題的方案

更新時間:2022-09-15 09:56:57 來源:動力節點 瀏覽2076次

解決mq消息丟失問題的方案有哪些?動力節點小編來告訴大家。

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

解決辦法:

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

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

(2)異步機制:

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

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

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

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

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

2.消息隊列消息丟失

解決辦法:

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

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

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

3.消費者丟失消息

解決辦法:

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

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

4.總結

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

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

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

以上就是關于“解決mq消息丟失問題的方案”介紹,大家如果想了解更多相關知識,可以關注一下動力節點的RabbitMQ教程,里面的課程內容由淺到深,很適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助哦。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 轻轻啪qqp.cc | 免费视频毛片 | 日本一区二区在线播放 | 日本视频免费高清一本18 | 亚洲成精品动漫久久精久 | 在线免费观看黄色小视频 | 日本不卡一区二区三区在线观看 | 午夜aaaaaaaaa视频在线 | 久久96精品国产 | 国产成本人三级在线观看网站 | 国产免费色视频 | 日韩一区二区三区免费 | 日本黄色片一级 | 翁熄粗大好爽 | 日本精品视频一区二区三区 | 性色生活片免费放 | 欧美一区二区在线观看视频 | 欧美一级高清视频在线播放 | 黄色a∨| 欧美aaa级片 | 最近免费中文完整视频观看 | 欧美高清一级 | 一级一级毛片 | 伊人网在线视频 | 欧美视频在线免费 | 成人欧美一区在线视频在线观看 | 综合色图| 欧美日韩aa一级视频 | 97人人艹| 欧美激情精品久久久久久不卡 | 人人射人人插 | 天天干天天操天天干 | 婷婷在线视频观看 | 午夜国产在线视频 | 我要看三级全黄 | 亚洲爆乳无码一区二区三区 | 欧美韩国日本在线 | 中日韩欧美视频 | 日韩欧美一区二区三区在线视频 | 一级黄色一级黄色 | 最近最好看2019年中文字幕 |