5. MQ高級 - MQ的可靠性 & 數(shù)據(jù)持久化

消息到達MQ以后,如果MQ不能及時保存,也會導致消息丟失,所以MQ的可靠性也非常重要。

1.數(shù)據(jù)持久化

為了提升性能,默認情況下MQ的數(shù)據(jù)都是在內(nèi)存存儲的臨時數(shù)據(jù),重啟后就會消失。為了保證數(shù)據(jù)的可靠性,必須配置數(shù)據(jù)持久化,包括:

  • 交換機持久化
  • 隊列持久化
  • 消息持久化

我們以控制臺界面為例來說明。

1.交換機持久化

在控制臺的Exchanges頁面,添加交換機時可以配置交換機的Durability參數(shù):


設(shè)置為Durable就是持久化模式,Transient就是臨時模式。

2.隊列持久化

在控制臺的Queues頁面,添加隊列時,同樣可以配置隊列的Durability參數(shù):


除了持久化以外,你可以看到隊列還有很多其它參數(shù),有一些我們會在后期學習。

3.消息持久化

在控制臺發(fā)送消息的時候,可以添加很多參數(shù),而消息的持久化是要配置一個properties:


說明:在開啟持久化機制以后,如果同時還開啟了生產(chǎn)者確認,那么MQ會在消息持久化以后才發(fā)送ACK回執(zhí),進一步確保消息的可靠性。
不過出于性能考慮,為了減少IO次數(shù),發(fā)送到MQ的消息并不是逐條持久化到數(shù)據(jù)庫的,而是每隔一段時間批量持久化。一般間隔在100毫秒左右,這就會導致ACK有一定的延遲,因此建議生產(chǎn)者確認全部采用異步方式。

如果覺得有收獲,歡迎點贊和評論,更多知識,請點擊關(guān)注查看我的主頁信息哦~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容