1. 程式人生 > 實用技巧 >RabbitMQ實戰 - Return機制

RabbitMQ實戰 - Return機制

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也不會進行任何列印。