版本 1.3 相較於 1.2 的變更

監聽器並行性

監聽器容器現在支援根據工作負載動態調整消費者數量,或者您可以透過程式化方式變更並行性,而無需停止容器。請參閱監聽器並行性

監聽器佇列

監聽器容器現在允許在執行時修改其監聽的佇列。此外,如果容器至少有一個已設定的佇列可供使用,則容器現在會啟動。請參閱監聽器佇列

此監聽器容器現在會在啟動期間重新宣告任何自動刪除佇列。請參閱auto-delete 佇列

消費者優先權

監聽器容器現在支援消費者引數,允許設定 x-priority 引數。請參閱消費者優先權

獨佔消費者

您現在可以使用單一exclusive 消費者來設定 SimpleMessageListenerContainer,以防止其他消費者監聽佇列。請參閱獨佔消費者

Rabbit Admin

您現在可以讓 Broker 產生佇列名稱,而無需考慮 durableautoDeleteexclusive 設定。請參閱設定 Broker

Direct Exchange 綁定

先前,從 direct-exchange 設定的 binding 元素中省略 key 屬性,會導致佇列或 Exchange 以空字串作為路由金鑰進行綁定。現在,它會以提供的 QueueExchange 的名稱進行綁定。如果您希望以空字串路由金鑰進行綁定,則需要指定 key=""

AmqpTemplate 變更

AmqpTemplate 現在提供多種同步 receiveAndReply 方法。這些方法由 RabbitTemplate 實作。如需更多資訊,請參閱[接收訊息]

RabbitTemplate 現在支援設定 RetryTemplate,以便在 Broker 無法使用時嘗試重試(具有可選的回退策略)。如需更多資訊,請參閱新增重試功能

快取連線工廠

您現在可以設定快取連線工廠來快取 Connection 實例及其 Channel 實例,而不是使用單一連線並僅快取 Channel 實例。請參閱連線與資源管理

綁定引數

<exchange><binding> 現在支援剖析 <binding-arguments> 子元素。您現在可以使用 key/value 屬性配對(以比對單一標頭)或使用 <binding-arguments> 子元素(允許比對多個標頭)來設定 <headers-exchange><binding>。這些選項是互斥的。請參閱Headers Exchange

路由連線工廠

已引入新的 SimpleRoutingConnectionFactory。它允許設定 ConnectionFactories 映射,以決定在執行時要使用的目標 ConnectionFactory。請參閱路由連線工廠

MessageBuilderMessagePropertiesBuilder

現在提供了用於建構訊息或訊息屬性的「Fluent API」。請參閱Message Builder API

RetryInterceptorBuilder 變更

現在提供了用於建構監聽器容器重試攔截器的「Fluent API」。請參閱同步操作中的失敗和重試選項

已新增 RepublishMessageRecoverer

提供此新的 MessageRecoverer,以便在重試耗盡時,允許將失敗的訊息發佈到另一個佇列(包括標頭中的堆疊追蹤資訊)。請參閱訊息監聽器和非同步案例

預設錯誤處理常式 (自 1.3.2 起)

已將預設 ConditionalRejectingErrorHandler 新增至監聽器容器。此錯誤處理常式會偵測到致命的訊息轉換問題,並指示容器拒絕訊息,以防止 Broker 持續重新傳遞無法轉換的訊息。請參閱例外處理

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

SimpleMessageListenerContainer 現在具有一個名為 missingQueuesFatal 的屬性(預設值:true)。先前,遺失佇列始終是致命的。請參閱訊息監聽器容器設定