1.5 版以來 1.4 的變更
spring-erlang
不再支援
發行版本中不再包含 spring-erlang
jar 檔。請改用RabbitMQ REST API。
CachingConnectionFactory
變更
控制容器佇列宣告行為的屬性
當監聽器容器消費者啟動時,它們會嘗試被動宣告佇列,以確保它們在 Broker 上可用。先前,如果這些宣告失敗 (例如,因為佇列不存在) 或當 HA 佇列正在移動時,重試邏輯固定為三次重試嘗試,間隔為五秒。如果佇列仍然不存在,則行為由 missingQueuesFatal
屬性 (預設值:true
) 控制。此外,對於設定為從多個佇列監聽的容器,如果只有一部分佇列可用,則消費者會以 60 秒的固定間隔重試遺失的佇列。
declarationRetries
、failedDeclarationRetryInterval
和 retryDeclarationInterval
屬性現在可設定。請參閱 訊息監聽器容器設定 以取得更多資訊。
DefaultMessagePropertiesConverter
變更
您現在可以設定 DefaultMessagePropertiesConverter
,以決定轉換為 String
而不是 DataInputStream
的 LongString
最大長度。轉換器有一個替代建構子,它將該值作為限制。先前,此限制硬式編碼為 1024
位元組。(在 1.4.4 中也可用)。
@RabbitListener
改善
自動交換器、佇列和綁定宣告
您現在可以宣告定義這些實體的集合的 Bean,並且 RabbitAdmin
會將內容新增至連線建立時宣告的實體清單。請參閱 宣告交換器、佇列和綁定的集合 以取得更多資訊。
RabbitTemplate
變更
新增 reply-address
reply-address
屬性已新增至 <rabbit-template>
元件,作為 reply-queue
的替代方案。請參閱 請求/回覆訊息傳遞 以取得更多資訊。(在 1.4.4 中也以 RabbitTemplate
上的 setter 形式提供)。
封鎖 receive
方法
RabbitTemplate
現在支援在 receive
和 convertAndReceive
方法中封鎖。請參閱 輪詢消費者 以取得更多資訊。
sendAndReceive
方法的強制性
當在使用 sendAndReceive
和 convertSendAndReceive
方法時設定 mandatory
旗標時,如果無法傳遞請求訊息,則呼叫執行緒會擲回 AmqpMessageReturnedException
。請參閱 回覆逾時 以取得更多資訊。
新增 RabbitManagementTemplate
引入了 RabbitManagementTemplate
,以使用 RabbitMQ Broker 的 管理外掛程式 提供的 REST API 來監控和設定 RabbitMQ Broker。請參閱 [management-rest-api] 以取得更多資訊。
監聽器容器 Bean 名稱 (XML)
已移除 套用一般的 Spring Bean 名稱覆寫。如果稍後解析的 移轉到此版本時,如果您的 |
但是,為了支援作為群組啟動和停止容器,新增了一個新的 group
屬性。當定義此屬性時,由此元素建立的容器會新增至以此名稱命名的 Bean,類型為 Collection<SimpleMessageListenerContainer>
。您可以迭代此群組以啟動和停止容器。
類別層級 @RabbitListener
@RabbitListener
註解現在可以應用於類別層級。結合新的 @RabbitHandler
方法註解,這可讓您根據 Payload 類型選取處理常式方法。請參閱 多方法監聽器 以取得更多資訊。
SimpleMessageListenerContainer
:BackOff 支援
現在可以為 SimpleMessageListenerContainer
提供 BackOff
實例,用於 consumer
啟動復原。請參閱 訊息監聽器容器設定 以取得更多資訊。
通道關閉記錄
引入了一種機制來控制通道關閉的記錄層級。請參閱 通道關閉記錄。
應用程式事件
當消費者失敗時,SimpleMessageListenerContainer
現在會發出應用程式事件。請參閱 消費者事件 以取得更多資訊。
消費者標籤設定
先前,非同步消費者的消費者標籤是由 Broker 產生。在此版本中,現在可以為監聽器容器提供命名策略。請參閱 消費者標籤。
新增 LocalizedQueueConnectionFactory
LocalizedQueueConnectionFactory
是一個新的連線 Factory,它連線到叢集中鏡像佇列實際駐留的節點。
匿名佇列命名
從 1.5.3 版開始,您現在可以控制 AnonymousQueue
名稱的產生方式。請參閱 AnonymousQueue
以取得更多資訊。