如何防止mq的訊息丟失

2021-10-12 17:31:26 字數 280 閱讀 7504

分為兩種情況,

1 主要在消費方

當訊息從mq傳到消費者時,消費者可能消費訊息失敗,這時mq中的訊息已經自動刪除了,導致訊息的丟失;

需要使用ack機制來保證訊息不會丟失;

當消費者從mq中拿到訊息時,這個訊息在mq中不刪除,而是消費者對訊息進行消費,消費者會給mq乙個反饋,如果消費成功,刪除mq中的訊息,沒有消費成功,會將訊息放回佇列中。

2 主要在mq中

在訊息傳遞的過程中mq可能宕機,死機會導致訊息丟失,可以通過設定訊息持久化來防止mq宕機後訊息丟失。

RabbitMQ防止訊息丟失

rabbitmq中,訊息丟失可以簡單的分為兩種 客戶端丟失和服務端丟失。針對這兩種訊息丟失,rabbitmq都給出了相應的解決方案。回到目錄 如圖,生產者p向佇列中生產訊息,c1和c2消費佇列中的訊息,預設情況下,rabbitmq會平均的分發消費給c1c2 round robin dispatchi...

RabbitMQ防止訊息丟失

rabbitmq一般情況很少丟失,但是不能排除意外,為了保證系統高可用,我們必須作出更好完善措施,保證系統的穩定性。1.訊息持久化 2.ack確認機制 3.設定集群映象模式 4.訊息補償機制 第一種 訊息持久化 rabbitmq 的訊息預設存放在記憶體上面,如果不特別宣告設定,訊息不會持久化儲存到硬...

RabbitMQ如何防止訊息丟失及重複消費

一 rabbitmq出現訊息丟失的情況及其解決辦法 如圖所示,rabbitmq丟失訊息的情況可以傳送在任何乙個節點。a 丟失的原因 因為網路傳輸的不穩定性,當生產者在向mq傳送訊息的過程中,mq沒有成功接收到訊息,但是生產者卻以為mq成功接收到了訊息,不會再次重 送該訊息,從而導致訊息的丟失。b 解...