Rabbitmq如何保證消息不丟失

上一篇 <<<Rabbitmq隊列模式總結(jié)
下一篇 >>>Springboot利用AmqpTemplate整合Rabbitmq


1.設(shè)計思路

2.方案說明

2.1 生產(chǎn)者提交給消息服務(wù)器時陷舅,使用確認機制

channel.confirmSelect();
…………
if (channel.waitForConfirms()) {
    System.out.println("發(fā)送消息成功");
} else {
    System.out.println("發(fā)送消息失敗");
}

生產(chǎn)者收不到確認的情況:
1)呕诉、MQ掛了
2)首装、MQ滿了媒至,
解決辦法:每次的生產(chǎn)者消息發(fā)送都通過日志表記錄下來龄句,后續(xù)采用手動補償即可

2.2 消息服務(wù)器對應(yīng)的隊列检疫、交換機等都持久化厘熟,保證數(shù)據(jù)的不丟失

1)嘲恍、代碼設(shè)置
2)、控制平臺設(shè)置---默認都是持久化的嚷狞。臨時的話重啟后就會消失
durable是否持久化 durable為持久化块促、 Transient 不持久化
autoDelete 是否自動刪除,當最后一個消費者斷開連接之后隊列是否自動被刪除感耙,可以通過RabbitMQ Management,查看某個隊列的消費者數(shù)量持隧,當consumers = 0時隊列就會自動刪除

如果已經(jīng)設(shè)置了持久化即硼,則給生產(chǎn)者確認的時候就是持久化成功后的確認。這樣就算硬盤壞了屡拨、持久化的過程斷電了只酥,都不會影響到消息的丟失,因為生產(chǎn)者收不到確認證明沒發(fā)送成功呀狼。

2.3 消費者采用消息確認機制裂允,保證數(shù)據(jù)的不丟失

1)、消息隊列到消費者的方式有首次主動拉取哥艇、后續(xù)生產(chǎn)者發(fā)送時的主動推送和消費者發(fā)生異常時的重試三種方式绝编。
2)、消息應(yīng)答的方式默認為自動,即消費者收到消息時十饥,隊列即刪除窟勃。如果消費者出現(xiàn)了斷電等情況,也會被直接刪除逗堵。所以要改成手動確認刪除后秉氧,隊列才會真正刪除,這樣保證了消息的不丟失蜒秤。

channel.basicConsume(QUEUE_NAME, false, defaultConsumer);
注:第二個參數(shù)值為false代表關(guān)閉RabbitMQ的自動應(yīng)答機制汁咏,改為手動應(yīng)答。

在處理完消息時作媚,返回應(yīng)答狀態(tài)攘滩,true表示為自動應(yīng)答模式。
channel.basicAck(envelope.getDeliveryTag(), false);

3.Rabbitmq如何開啟持久化的功能

  1. 默認的情況下mq服務(wù)器端創(chuàng)建隊列和交換機都是持久化的
  1. 如果是代碼創(chuàng)建的話掂骏,將該值設(shè)置為durablet

推薦閱讀:
<<<消息中間件的核心思想
<<<消息中間件常見問題匯總
<<<基于Netty簡單手寫消息中間件思路
<<<消息隊列常用名詞與中間件對比
<<<Rabbitmq基礎(chǔ)知識
<<<Rabbitmq示例之點對點簡單隊列
<<<Rabbitmq示例之工作(公平)隊列
<<<Rabbitmq示例之發(fā)布訂閱模式
<<<Rabbitmq示例之路由模式Routing
<<<Rabbitmq示例之通配符模式Topics
<<<Rabbitmq示例之RPC模式
<<<Rabbitmq隊列模式總結(jié)
<<<Springboot利用AmqpTemplate整合Rabbitmq
<<<Rabbitmq如何保證冪等性
<<<Rabbitmq的重試策略
<<<Rabbitmq通過死信隊列實現(xiàn)過期監(jiān)聽
<<<Rabbitmq解決分布式事務(wù)思路
<<<Rabbitmq解決分布式事務(wù)demo
<<<Rabbitmq環(huán)境安裝
<<<Kafka中的專業(yè)術(shù)語都有哪些
<<<Kafka的設(shè)計原理介紹
<<<Kafka集群如何實現(xiàn)相互感知
<<<Kafka如何實現(xiàn)分區(qū)及指定分區(qū)消費
<<<Kafka如何保證消息順序消費
<<<Kafka如何保證高吞吐量
<<<Kafka集群環(huán)境搭建
<<<RocketMQ架構(gòu)原理
<<<RocketMQ轰驳、RabbitMQ和Kafka的對比
<<<SpringBoot整合RocketMQ示例
<<<RocketMQ保證順序消費demo
<<<RocketMQ如何動態(tài)擴容和縮容
<<<RocketMQ如何解決分布式事務(wù)
<<<RocketMQ單機版本安裝
<<<RocketMQ集群環(huán)境程序啟用相關(guān)知識點
<<<RocketMQ單機做主備實操
<<<RocketMQ所有配置說明

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市弟灼,隨后出現(xiàn)的幾起案子级解,更是在濱河造成了極大的恐慌,老刑警劉巖田绑,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件勤哗,死亡現(xiàn)場離奇詭異,居然都是意外死亡掩驱,警方通過查閱死者的電腦和手機芒划,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來欧穴,“玉大人民逼,你說我怎么就攤上這事′塘保” “怎么了拼苍?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長调缨。 經(jīng)常有香客問我疮鲫,道長,這世上最難降的妖魔是什么弦叶? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任俊犯,我火速辦了婚禮,結(jié)果婚禮上伤哺,老公的妹妹穿的比我還像新娘燕侠。我一直安慰自己者祖,他們只是感情好,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布贬循。 她就那樣靜靜地躺著咸包,像睡著了一般。 火紅的嫁衣襯著肌膚如雪杖虾。 梳的紋絲不亂的頭發(fā)上烂瘫,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天,我揣著相機與錄音奇适,去河邊找鬼坟比。 笑死,一個胖子當著我的面吹牛嚷往,可吹牛的內(nèi)容都是我干的葛账。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼皮仁,長吁一口氣:“原來是場噩夢啊……” “哼籍琳!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起贷祈,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤趋急,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后势誊,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體呜达,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年粟耻,在試婚紗的時候發(fā)現(xiàn)自己被綠了查近。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡挤忙,死狀恐怖霜威,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情册烈,我是刑警寧澤戈泼,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站茄厘,受9級特大地震影響矮冬,放射性物質(zhì)發(fā)生泄漏谈宛。R本人自食惡果不足惜次哈,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望吆录。 院中可真熱鬧窑滞,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至此改,卻和暖如春趾撵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背共啃。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工占调, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人移剪。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓究珊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親纵苛。 傳聞我的和親對象是個殘疾皇子剿涮,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容