1.7 版自 1.6 版以來的變更
AMQP 用戶端程式庫
Spring AMQP 現在使用 RabbitMQ 團隊提供的 amqp-client
程式庫的全新 4.0.x 版本。此用戶端預設已設定自動復原。請參閱 RabbitMQ 自動連線/拓撲復原。
4.0.x 用戶端預設啟用自動復原。雖然與此功能相容,但 Spring AMQP 有其自己的復原機制,而且通常不需要用戶端復原功能。我們建議停用 amqp-client 自動復原,以避免在 Broker 可用但連線尚未復原時收到 AutoRecoverConnectionNotCurrentlyOpenException 實例。從 1.7.1 版開始,Spring AMQP 除非您明確建立自己的 RabbitMQ 連線工廠並將其提供給 CachingConnectionFactory ,否則會停用自動復原。由 RabbitConnectionFactoryBean 建立的 RabbitMQ ConnectionFactory 實例也預設停用此選項。 |
Log4j 2 升級
現在 (對於 AmqpAppender
) 最低 Log4j 2 版本為 2.7
。此框架不再與先前的版本相容。如需更多資訊,請參閱 記錄子系統 AMQP Appender。
Logback Appender
此 Appender 預設不再擷取呼叫者資料 (方法、行號)。您可以透過設定 includeCallerData
組態選項來重新啟用它。如需有關可用記錄 Appender 的資訊,請參閱 記錄子系統 AMQP Appender。
Spring Retry 升級
現在最低 Spring Retry 版本為 1.2
。此框架不再與先前的版本相容。
關閉行為
您現在可以將 forceCloseChannel
設定為 true
,以便在容器執行緒未在 shutdownTimeout
內回應關閉時,強制關閉通道,導致任何未確認的訊息重新排隊。如需更多資訊,請參閱 訊息監聽器容器設定。
JUnit @Rules
先前由框架內部使用的規則現在已在名為 spring-rabbit-junit
的獨立 jar 中提供。如需更多資訊,請參閱 JUnit @Rules
。
連線命名策略
現在提供新的 ConnectionNameStrategy
,以從 AbstractConnectionFactory
填入目標 RabbitMQ 連線的應用程式特定識別。如需更多資訊,請參閱 連線和資源管理。
監聽器容器變更
交易回滾行為
您現在可以將訊息重新排隊在交易回滾時設定為一致,無論是否設定交易管理器。如需更多資訊,請參閱 關於接收訊息回滾的注意事項。