rabbitmq死信佇列

2021-10-05 01:42:57 字數 714 閱讀 5843

死信佇列 dlx -- dead-letter-exchange

利用dlx,當訊息在乙個佇列中變成死信(dead message)之後,它能重新publish到另外乙個exchange,這個exchange就是dxl

訊息變成死信的幾種情況

訊息被拒絕 basic.reject/basic.nack 並且requeue=false

訊息ttl過期

佇列達到最大長度

1,dlx也是乙個正常的exchange,和一般的exchange沒有區別,它能在任何的佇列上被指定,實際上就是設定某個佇列的屬性

2,當這個佇列中有死信時,rabbitmq就會自動的將這個訊息重新發布到設定的exchange上去,進而被路由到另乙個佇列

3,可以監聽這個佇列中訊息做相應的處理,這個特性可以彌補rabbitmq3.0以前的immediate引數的功能

死信佇列設定

首先需要設定死信佇列的exchange和queue,然後進行繫結

exchange:dlx.exchange

queue:dlx.queue

routingkey:#

平時使用過程中正常宣告交換機,佇列,然後進行繫結,只不過需要在佇列上加上乙個引數即可,arguments.put("x-dead-letter-exchange","dlx.exchange")

RabbitMq死信佇列

死信交換機有什麼用呢?在建立佇列的時候 可以給這個佇列附帶乙個交換機,那麼這個佇列作廢的訊息就會被重新發到附帶的交換機,然後讓這個交換機重新路由這條訊息。通俗的說,就是訊息產生之後,因為設定了超時時間,在這段時間內訊息沒有被消費就會被扔到死信佇列裡面。交換機名稱 private static fin...

rabbitmq死信佇列

概念 當訊息成為死信時,會將該訊息放到死信交換機當中,這個交換機也繫結的其他佇列,還可以繼續進行消費。訊息什麼時候會變成死信 在配置檔案宣告佇列時指定死信交換機的名稱和死信交換機的路由key key x dead letter exchange value 死信交換機名稱 key x dead le...

RabbitMQ死信佇列

死信佇列 dlx,全稱為dead letter exchange,可以稱之為死信交換器,也有人稱之為死信郵箱.當訊息在乙個佇列中變成死信 dead message 之後,它能被重新被傳送到另乙個交換器中,這個交換器就是dlx,繫結dlx的佇列就稱之為死信佇列。訊息變成死信 般是由於以下幾種情況 1....