1.5 相較 1.4 的變化

不再支援 spring-erlang

spring-erlang jar 不再包含在發行版中。請改用 RabbitMQ REST API

CachingConnectionFactory 更改

CachingConnectionFactory 中的空地址屬性

以前,如果連線工廠配置了主機和埠,但同時提供了空的 addresses 字串,則會忽略主機和埠。現在,空的 addresses 字串與 null 相同處理,並使用主機和埠。

URI 建構函式

CachingConnectionFactory 增加了一個帶有 URI 引數的建構函式,用於配置代理連線。

連線重置

新增了一個名為 resetConnection() 的方法,允許使用者重置連線(或多個連線)。例如,您可以使用此方法在故障轉移到輔助代理後重新連線到主代理。這 影響程序中的操作。現有的 destroy() 方法功能完全相同,但新方法的名稱不那麼令人生畏。

控制容器佇列宣告行為的屬性

當監聽器容器消費者啟動時,它們會嘗試被動宣告佇列以確保它們在代理上可用。以前,如果這些宣告失敗(例如,因為佇列不存在)或當 HA 佇列正在移動時,重試邏輯固定為三次重試,間隔為五秒。如果佇列仍然不存在,則行為由 missingQueuesFatal 屬性控制(預設值:true)。此外,對於配置為從多個佇列監聽的容器,如果只有部分佇列可用,則消費者會以固定的 60 秒間隔重試缺失的佇列。

declarationRetriesfailedDeclarationRetryIntervalretryDeclarationInterval 屬性現在可配置。有關更多資訊,請參閱 訊息監聽器容器配置

類包更改

RabbitGatewaySupport 類已從 o.s.amqp.rabbit.core.support 移至 o.s.amqp.rabbit.core

DefaultMessagePropertiesConverter 更改

您現在可以配置 DefaultMessagePropertiesConverter 來確定轉換為 String 而不是 DataInputStreamLongString 的最大長度。轉換器有一個替代建構函式,它將該值作為限制。以前,此限制硬編碼為 1024 位元組。(在 1.4.4 中也可用)。

@RabbitListener 改進

@RabbitListener@QueueBinding

bindings 屬性已新增到 @RabbitListener 註解中,與 queues 屬性互斥,允許指定佇列、其交換以及由 RabbitAdmin 在代理上宣告的繫結。

@SendTo 中的 SpEL

@RabbitListener 的預設回覆地址 (@SendTo) 現在可以是 SpEL 表示式。

透過屬性指定多個佇列名稱

您現在可以使用 SpEL 和屬性佔位符的組合為監聽器指定多個佇列。

有關更多資訊,請參閱 註解驅動的監聽器端點

自動交換、佇列和繫結宣告

您現在可以宣告定義這些實體集合的 bean,RabbitAdmin 會在建立連線時將內容新增到它宣告的實體列表中。有關更多資訊,請參閱 宣告交換、佇列和繫結集合

RabbitTemplate 更改

新增 reply-address

reply-address 屬性已新增到 <rabbit-template> 元件中,作為 reply-queue 的替代。有關更多資訊,請參閱 請求/回覆訊息。(在 1.4.4 中也可用作 RabbitTemplate 上的 setter)。

阻塞 receive 方法

RabbitTemplate 現在支援 receiveconvertAndReceive 方法中的阻塞。有關更多資訊,請參閱 輪詢消費者

sendAndReceive 方法的強制性

當使用 sendAndReceiveconvertSendAndReceive 方法時,如果請求訊息無法送達,則呼叫執行緒會丟擲 AmqpMessageReturnedException。有關更多資訊,請參閱 回覆超時

不正確的回覆監聽器配置

框架嘗試在使用命名回覆佇列時驗證回覆監聽器容器的正確配置。

有關更多資訊,請參閱 回覆監聽器容器

新增 RabbitManagementTemplate

引入了 RabbitManagementTemplate,用於透過其 管理外掛 提供的 REST API 監視和配置 RabbitMQ 代理。有關更多資訊,請參閱 RabbitMQ REST API

監聽器容器 Bean 名稱 (XML)

<listener-container/> 元素上的 id 屬性已移除。從這個版本開始,<listener/> 子元素上的 id 將單獨用於命名為每個監聽器元素建立的監聽器容器 bean。

正常的 Spring bean 名稱覆蓋將適用。如果稍後解析的 <listener/>id 與現有 bean 的 id 相同,則新定義將覆蓋現有定義。以前,bean 名稱由 <listener-container/><listener/> 元素的 id 屬性組成。

遷移到此版本時,如果您在 <listener-container/> 元素上具有 id 屬性,請將其移除並改為在子 <listener/> 元素上設定 id

然而,為了支援將容器作為一組啟動和停止,添加了一個新的 group 屬性。當定義此屬性時,由此元素建立的容器將新增到名稱為此的 bean 中,型別為 Collection<SimpleMessageListenerContainer>。您可以遍歷此組以啟動和停止容器。

類級別 @RabbitListener

@RabbitListener 註解現在可以應用於類級別。與新的 @RabbitHandler 方法註解一起,這允許您根據有效負載型別選擇處理程式方法。有關更多資訊,請參閱 多方法監聽器

SimpleMessageListenerContainer:回退支援

SimpleMessageListenerContainer 現在可以提供一個 BackOff 例項,用於消費者啟動恢復。有關更多資訊,請參閱 訊息監聽器容器配置

通道關閉日誌記錄

引入了一種控制通道關閉日誌級別的新機制。請參閱 日誌通道關閉事件

應用程式事件

當消費者失敗時,SimpleMessageListenerContainer 現在會發出應用程式事件。有關更多資訊,請參閱 消費者事件

消費者標籤配置

以前,非同步消費者的消費者標籤由代理生成。在此版本中,現在可以向監聽器容器提供命名策略。請參閱 消費者標籤

使用 MessageListenerAdapter

MessageListenerAdapter 現在支援佇列名稱(或消費者標籤)到方法名稱的對映,以根據接收訊息的佇列確定要呼叫的委託方法。

新增 LocalizedQueueConnectionFactory

LocalizedQueueConnectionFactory 是一個新的連線工廠,它連線到叢集中實際存在映象佇列的節點。

匿名佇列命名

從 1.5.3 版本開始,您現在可以控制 AnonymousQueue 名稱的生成方式。有關更多資訊,請參閱 AnonymousQueue

© . This site is unofficial and not affiliated with VMware.