rabbitmq中,訊息丟失可以簡單的分為兩種:客戶端丟失和服務端丟失。針對這兩種訊息丟失,rabbitmq都給出了相應的解決方案。
回到目錄
如圖,生產者p向佇列中生產訊息,c1和c2消費佇列中的訊息,預設情況下,rabbitmq會平均的分發消費給c1c2(round-robin dispatching),假設乙個任務的執行時間非常長,在執行過程中,客戶端掛了(連線斷開),那麼,該客戶端正在處理且未完成的訊息,以及分配給它還沒來得及執行的訊息,都將丟失。因為預設情況下,rabbitmq分發完訊息後,就會從記憶體中把訊息刪除掉。
回到目錄
RabbitMQ防止訊息丟失
rabbitmq一般情況很少丟失,但是不能排除意外,為了保證系統高可用,我們必須作出更好完善措施,保證系統的穩定性。1.訊息持久化 2.ack確認機制 3.設定集群映象模式 4.訊息補償機制 第一種 訊息持久化 rabbitmq 的訊息預設存放在記憶體上面,如果不特別宣告設定,訊息不會持久化儲存到硬...
RabbitMQ如何防止訊息丟失及重複消費
一 rabbitmq出現訊息丟失的情況及其解決辦法 如圖所示,rabbitmq丟失訊息的情況可以傳送在任何乙個節點。a 丟失的原因 因為網路傳輸的不穩定性,當生產者在向mq傳送訊息的過程中,mq沒有成功接收到訊息,但是生產者卻以為mq成功接收到了訊息,不會再次重 送該訊息,從而導致訊息的丟失。b 解...
RabbitMQ如何防止資料丟失
解決方案 rabbitmq提供了transaction和cofirm模式來確保生產者不丟訊息.tansaction機制就是說 解決方案 處理訊息佇列丟失的情況,一般是開啟持久化磁碟的配置,將durable設定為true bean public exchange orderseckillexchang...