1.5 版本相對於 1.4 版本的變化
spring-erlang
不再支援
spring-erlang
jar 不再包含在發行版中。請使用 RabbitMQ REST API 代替。
CachingConnectionFactory
的變化
控制容器佇列宣告行為的屬性
監聽器容器消費者啟動時,會嘗試被動宣告佇列,以確保它們在 broker 上可用。此前,如果這些宣告失敗(例如,因為佇列不存在)或高可用 (HA) 佇列正在移動時,重試邏輯被固定為三次嘗試,間隔五秒。如果佇列仍然不存在,行為由 missingQueuesFatal
屬性控制(預設為 true
)。此外,對於配置為監聽多個佇列的容器,如果只有一部分佇列可用,消費者會以固定的 60 秒間隔重試缺失的佇列。
declarationRetries
、failedDeclarationRetryInterval
和 retryDeclarationInterval
屬性現在可以配置了。更多資訊請參見 訊息監聽器容器配置。
DefaultMessagePropertiesConverter
的變化
現在可以配置 DefaultMessagePropertiesConverter
,以確定 LongString
轉換為 String
而不是 DataInputStream
的最大長度。轉換器提供了一個接受該值作為限制的替代建構函式。此前,此限制被硬編碼為 1024
位元組。(此功能在 1.4.4 版本中也已提供)。
@RabbitListener
改進
Exchange、Queue 和 Binding 的自動宣告
現在可以宣告定義這些實體集合的 bean,並且 RabbitAdmin
在建立連線時會將這些內容新增到它宣告的實體列表中。更多資訊請參見 宣告 Exchange、Queue 和 Binding 集合。
RabbitTemplate
的變化
新增 reply-address
reply-address
屬性已新增到 <rabbit-template>
元件中,作為 reply-queue
的替代項。更多資訊請參見 請求/回覆訊息。(在 1.4.4 版本中也作為 RabbitTemplate
的 setter 提供)。
阻塞 receive
方法
RabbitTemplate
現在支援在 receive
和 convertAndReceive
方法中進行阻塞。更多資訊請參見 輪詢消費者。
sendAndReceive
方法中的 Mandatory 標誌
在使用 sendAndReceive
和 convertSendAndReceive
方法時設定 mandatory
標誌後,如果請求訊息無法送達,呼叫執行緒將丟擲 AmqpMessageReturnedException
。更多資訊請參見 回覆超時。
新增 RabbitManagementTemplate
引入了 RabbitManagementTemplate
,用於透過 RabbitMQ Broker 的 管理外掛 提供的 REST API 來監控和配置 RabbitMQ Broker。更多資訊請參見 RabbitMQ REST API。
監聽器容器 Bean 名稱 (XML)
會應用正常的 Spring bean 名稱覆蓋規則。如果解析到後續的 遷移到此版本時,如果您的 |
但是,為了支援將容器作為一組進行啟動和停止,新增了一個 group
屬性。定義此屬性時,由該元素建立的容器將被新增到名為此名稱的 bean 中,其型別為 Collection<SimpleMessageListenerContainer>
。您可以遍歷此組來啟動和停止容器。
類級別的 @RabbitListener
@RabbitListener
註解現在可以應用於類級別。結合新的 @RabbitHandler
方法註解,這允許您根據 payload 型別選擇處理方法。更多資訊請參見 多方法監聽器。
SimpleMessageListenerContainer
:BackOff 支援
SimpleMessageListenerContainer
現在可以提供一個 BackOff
例項,用於 consumer
啟動恢復。更多資訊請參見 訊息監聽器容器配置。
Channel 關閉日誌記錄
引入了一種控制 channel 關閉日誌級別 的機制。參見 記錄 Channel 關閉事件。
應用事件
SimpleMessageListenerContainer
現在在消費者失敗時發出應用事件。更多資訊請參見 消費者事件。
消費者標籤配置
此前,非同步消費者的消費者標籤由 broker 生成。在此版本中,現在可以向監聽器容器提供命名策略。參見 消費者標籤。
匿名佇列命名
從 1.5.3 版本開始,現在可以控制 AnonymousQueue
名稱的生成方式。更多資訊請參見 AnonymousQueue
。