1.3 版本以來相對於 1.2 版本的變更

監聽器併發性

監聽器容器現在支援基於工作負載動態調整消費者數量,或者您可以在不停止容器的情況下透過程式設計方式更改併發性。詳見 監聽器併發性

監聽器佇列

監聽器容器現在允許在執行時修改其監聽的佇列。此外,如果至少有一個配置的佇列可用,容器現在就可以啟動。詳見 監聽器容器佇列

此監聽器容器現在在啟動期間重新宣告任何 auto-delete 佇列。詳見 auto-delete 佇列

消費者優先順序

監聽器容器現在支援消費者引數,允許設定 x-priority 引數。詳見 消費者優先順序

獨佔消費者

您現在可以將 SimpleMessageListenerContainer 配置為單個 exclusive 消費者,阻止其他消費者監聽佇列。詳見 獨佔消費者

Rabbit Admin

您現在可以讓 broker 生成佇列名稱,而無論 durableautoDeleteexclusive 設定如何。詳見 配置 Broker

Direct Exchange 繫結

此前,從 direct-exchange 配置的 binding 元素中省略 key 屬性會導致佇列或交換器以空字串作為路由鍵進行繫結。現在,它將以提供的 QueueExchange 的名稱進行繫結。如果您希望使用空字串路由鍵進行繫結,則需要指定 key=""

AmqpTemplate 變更

AmqpTemplate 現在提供了多個同步的 receiveAndReply 方法。這些方法由 RabbitTemplate 實現。有關更多資訊,請參閱 接收訊息

RabbitTemplate 現在支援配置 RetryTemplate,以便在 broker 不可用時嘗試重試(可選擇帶有退避策略)。有關更多資訊,請參閱 新增重試功能

快取連線工廠

您現在可以將快取連線工廠配置為快取 Connection 例項及其 Channel 例項,而不是使用單個連線僅快取 Channel 例項。詳見 連線和資源管理

繫結引數

<exchange 現在支援解析 子元素。您現在可以透過 key/value 屬性對(用於匹配單個 header)或 子元素(允許匹配多個 header)來配置 。這些選項是互斥的。詳見 Headers Exchange

路由連線工廠

引入了一個新的 SimpleRoutingConnectionFactory。它允許配置 ConnectionFactory 對映,以確定執行時使用的目標 ConnectionFactory。詳見 路由連線工廠

MessageBuilderMessagePropertiesBuilder

現在提供了用於構建訊息或訊息屬性的“流暢 API”。詳見 Message Builder API

RetryInterceptorBuilder 變更

現在提供了用於構建監聽器容器重試攔截器的“流暢 API”。詳見 同步操作中的故障和重試選項

添加了 RepublishMessageRecoverer

提供了這個新的 MessageRecoverer,用於在重試耗盡時將失敗的訊息釋出到另一個佇列(包括 header 中的堆疊跟蹤資訊)。詳見 訊息監聽器和非同步情況

預設錯誤處理器 (自 1.3.2 版起)

監聽器容器中添加了一個預設的 ConditionalRejectingErrorHandler。該錯誤處理器會檢測到致命的訊息轉換問題,並指示容器拒絕該訊息,以防止 broker 不斷地重新投遞不可轉換的訊息。詳見 異常處理

監聽器容器 missingQueuesFatal 屬性 (自 1.3.5 版起)

SimpleMessageListenerContainer 現在有一個名為 missingQueuesFatal 的屬性(預設值:true)。以前,缺少佇列總是致命的。詳見 訊息監聽器容器配置