RabbitMQ如何保證訊息不丟失

2022-05-06 14:27:10 字數 466 閱讀 1883

rabbitmq 大致有三種場景會發生訊息丟失;1)consumer沒有接收到訊息,消費之前 2)consumer接收到訊息,訊息暫存記憶體,還未消費 3)consumer消費時

第一種丟失場景就像我剛剛到達便利店,還沒選好買什麼商品,這個時候便利店突然斷電,無法消費;這種場景下使用message acknowledgment 機制,就是消費端消費完成要通知服務端,服務端才把訊息從記憶體刪除。

第二種場景就像生活中,我到便利店買了東西,正在選購商品時;但是商店的收銀機突然壞掉了;這樣所有的consumer都暫時不能消費.rabbitmq 的訊息預設存放在記憶體上面,如果不特別宣告設定,訊息不會持久化儲存到硬碟上面的,如果節點重啟或者意外crash掉(還沒消費的時候),訊息就會丟失。這種場景下可對訊息進行持久化處理。

第三種場景就像我買好了東西正要結賬處理時收銀機壞掉了;這種場景下也是可以使用message acknowledgment 機制的.

參考文件:

RabbitMQ 如何保證訊息不丟失?

rabbitmq 如何保證訊息不丟失?rabbitmq一般情況很少丟失,但是不能排除意外,為了保證我們自己系統高可用,我們必須作出更好完善措施,保證系統的穩定性。下面來介紹下,如何保證訊息的絕對不丟失的問題,下面分享的絕對乾貨,都是在知名網際網路產品的產線中使用。1.訊息持久化 2.ack確認機制 ...

RabbitMQ 如何保證訊息不丟失?

1.發訊息的時候確定訊息發出去了 訊息確認 2.rabbitmq伺服器也不會丟訊息 儲存到硬碟中 3.收訊息的時候,確保業務完成 手動應答 下面來介紹下,如何保證訊息的絕對不丟失的問題,下面分享的絕對乾貨,都是在知名網際網路產品的產線中使用。1.訊息持久化 2.ack確認機制 3.設定集群映象模式 ...

rabbitmq如何保證訊息可靠性不丟失

目錄mq丟失資訊 消費者丟失資訊 之前我們簡單介紹了rabbitmq的功能。他的作用就是方便我們的訊息解耦。緊接著問題就會暴露出來。解耦就設計到雙方系統不穩定問題。在mq中有生產者 mq 消費者三個角色。其中乙個角色down機或者重啟後。就設計到訊息的丟失問題。因為mq整個訊息週期設計到上述的三個角...