RabbitMQ實戰 - Return機制
阿新 • • 發佈:2020-10-08
1 什麼是Return機制
Return Listener 用於處理一些不可路由的訊息。正常情況下,Pro通過指定一個Exchange和Routingkey,把訊息送到某佇列,然後Con監聽佇列,進行消費處理操作。
但是,如果我們在傳送訊息時,當前Exchange不存在或Routingkey路由不到,若要監聽這種不可達的訊息,就要用到Return Listener
- Return機制示意圖
2 Return機制的實現
新增return監聽:addReturnListener,Pro去監聽這些不可達的訊息,做一些後續處理。
比如記錄訊息日誌或及時去跟蹤記錄,有可能重新設定一下就好了。
在基礎API中的一個關鍵配置項:Mandatory
- true,則監聽器會接收到路由不可達的訊息,然後進行後續處理
- false,則broker自動刪除該訊息
3 程式碼實戰
-
Con
-
Pro
-
啟動Con
-
啟動Pro
由於Pro設定的是一個錯誤的路由key,所以消費端沒有任何列印,而生產端列印瞭如下內容
-
如果我們將 Mandatory 屬性設定為false,對於不可達的訊息會被Broker直接刪除,那麼Pro就不會進行任何列印了。如果我們的路由key設定為正確的,那麼Con能夠正確消費,Pro也不會進行任何列印。