1.7 相較 1.6 的變化
AMQP 客戶端庫
Spring AMQP 現在使用 RabbitMQ 團隊提供的 amqp-client 庫的 4.0.x 版本。此客戶端預設配置了自動恢復。請參閱 RabbitMQ 自動連線/拓撲恢復。
4.0.x 客戶端預設啟用自動恢復。儘管與此功能相容,Spring AMQP 擁有自己的恢復機制,通常不需要客戶端恢復功能。我們建議停用 amqp-client 自動恢復,以避免在代理可用但連線尚未恢復時出現 AutoRecoverConnectionNotCurrentlyOpenException 例項。從 1.7.1 版本開始,Spring AMQP 預設停用此功能,除非您明確建立自己的 RabbitMQ 連線工廠並將其提供給 CachingConnectionFactory。透過 RabbitConnectionFactoryBean 建立的 RabbitMQ ConnectionFactory 例項也預設停用了該選項。 |
Log4j 2 升級
Log4j 2 的最低版本(對於 AmqpAppender)現在是 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 中提供。有關更多資訊,請參閱 JUnit4 @Rules。
連線命名策略
現在提供了一個新的 ConnectionNameStrategy,用於從 AbstractConnectionFactory 填充目標 RabbitMQ 連線的特定於應用程式的標識。有關更多資訊,請參閱 連線和資源管理。
偵聽器容器的更改
事務回滾行為
您現在可以配置事務回滾時訊息的重新排隊,使其保持一致,無論是否配置了事務管理器。有關更多資訊,請參閱 關於接收訊息回滾的說明。