1.5 相較 1.4 的變化
不再支援 spring-erlang
spring-erlang jar 不再包含在發行版中。請改用 RabbitMQ REST API。
CachingConnectionFactory 更改
控制容器佇列宣告行為的屬性
當監聽器容器消費者啟動時,它們會嘗試被動宣告佇列以確保它們在代理上可用。以前,如果這些宣告失敗(例如,因為佇列不存在)或當 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 方法時,如果請求訊息無法送達,則呼叫執行緒會丟擲 AmqpMessageReturnedException。有關更多資訊,請參閱 回覆超時。
新增 RabbitManagementTemplate
引入了 RabbitManagementTemplate,用於透過其 管理外掛 提供的 REST API 監視和配置 RabbitMQ 代理。有關更多資訊,請參閱 RabbitMQ REST API。
監聽器容器 Bean 名稱 (XML)
|
正常的 Spring bean 名稱覆蓋將適用。如果稍後解析的 遷移到此版本時,如果您在 |
然而,為了支援將容器作為一組啟動和停止,添加了一個新的 group 屬性。當定義此屬性時,由此元素建立的容器將新增到名稱為此的 bean 中,型別為 Collection<SimpleMessageListenerContainer>。您可以遍歷此組以啟動和停止容器。
類級別 @RabbitListener
@RabbitListener 註解現在可以應用於類級別。與新的 @RabbitHandler 方法註解一起,這允許您根據有效負載型別選擇處理程式方法。有關更多資訊,請參閱 多方法監聽器。
SimpleMessageListenerContainer:回退支援
SimpleMessageListenerContainer 現在可以提供一個 BackOff 例項,用於消費者啟動恢復。有關更多資訊,請參閱 訊息監聽器容器配置。
通道關閉日誌記錄
引入了一種控制通道關閉日誌級別的新機制。請參閱 日誌通道關閉事件。
應用程式事件
當消費者失敗時,SimpleMessageListenerContainer 現在會發出應用程式事件。有關更多資訊,請參閱 消費者事件。
消費者標籤配置
以前,非同步消費者的消費者標籤由代理生成。在此版本中,現在可以向監聽器容器提供命名策略。請參閱 消費者標籤。
匿名佇列命名
從 1.5.3 版本開始,您現在可以控制 AnonymousQueue 名稱的生成方式。有關更多資訊,請參閱 AnonymousQueue。