版本 1.3 相較於 1.2 的變更
監聽器並行性
監聽器容器現在支援根據工作負載動態調整消費者數量,或者您可以透過程式化方式變更並行性,而無需停止容器。請參閱監聽器並行性。
監聽器佇列
監聽器容器現在允許在執行時修改其監聽的佇列。此外,如果容器至少有一個已設定的佇列可供使用,則容器現在會啟動。請參閱監聽器佇列
此監聽器容器現在會在啟動期間重新宣告任何自動刪除佇列。請參閱auto-delete
佇列。
消費者優先權
監聽器容器現在支援消費者引數,允許設定 x-priority
引數。請參閱消費者優先權。
獨佔消費者
您現在可以使用單一exclusive
消費者來設定 SimpleMessageListenerContainer
,以防止其他消費者監聽佇列。請參閱獨佔消費者。
Rabbit Admin
您現在可以讓 Broker 產生佇列名稱,而無需考慮 durable
、autoDelete
和 exclusive
設定。請參閱設定 Broker。
Direct Exchange 綁定
先前,從 direct-exchange
設定的 binding
元素中省略 key
屬性,會導致佇列或 Exchange 以空字串作為路由金鑰進行綁定。現在,它會以提供的 Queue
或 Exchange
的名稱進行綁定。如果您希望以空字串路由金鑰進行綁定,則需要指定 key=""
。
快取連線工廠
您現在可以設定快取連線工廠來快取 Connection
實例及其 Channel
實例,而不是使用單一連線並僅快取 Channel
實例。請參閱連線與資源管理。
綁定引數
<exchange>
的 <binding>
現在支援剖析 <binding-arguments>
子元素。您現在可以使用 key/value
屬性配對(以比對單一標頭)或使用 <binding-arguments>
子元素(允許比對多個標頭)來設定 <headers-exchange>
的 <binding>
。這些選項是互斥的。請參閱Headers Exchange。
路由連線工廠
已引入新的 SimpleRoutingConnectionFactory
。它允許設定 ConnectionFactories
映射,以決定在執行時要使用的目標 ConnectionFactory
。請參閱路由連線工廠。
MessageBuilder
和 MessagePropertiesBuilder
現在提供了用於建構訊息或訊息屬性的「Fluent API」。請參閱Message Builder API。
RetryInterceptorBuilder
變更
現在提供了用於建構監聽器容器重試攔截器的「Fluent API」。請參閱同步操作中的失敗和重試選項。
已新增 RepublishMessageRecoverer
提供此新的 MessageRecoverer
,以便在重試耗盡時,允許將失敗的訊息發佈到另一個佇列(包括標頭中的堆疊追蹤資訊)。請參閱訊息監聽器和非同步案例。
預設錯誤處理常式 (自 1.3.2 起)
已將預設 ConditionalRejectingErrorHandler
新增至監聽器容器。此錯誤處理常式會偵測到致命的訊息轉換問題,並指示容器拒絕訊息,以防止 Broker 持續重新傳遞無法轉換的訊息。請參閱例外處理。
監聽器容器 'missingQueuesFatal` 屬性 (自 1.3.5 起)
SimpleMessageListenerContainer
現在具有一個名為 missingQueuesFatal
的屬性(預設值:true
)。先前,遺失佇列始終是致命的。請參閱訊息監聽器容器設定。