自 2.4 以來 3.0 的變更

Java 17, Spring Framework 6.0

此版本需要 Spring Framework 6.0 和 Java 17

Remoting

不再支援遠端功能 (使用 RMI)。

Observation

現在支援使用 Micrometer 啟用計時器和追蹤的觀察功能。請參閱 Micrometer 觀察 以取得更多資訊。

原生映像檔

提供建立原生映像檔的支援。請參閱 原生映像檔 以取得更多資訊。

AsyncRabbitTemplate

AsyncRabbitTemplate 現在傳回 CompletableFuture 而不是 ListenableFuture。請參閱 Async Rabbit Template 以取得更多資訊。

Stream 支援變更

RabbitStreamOperationsRabbitStreamTemplate 方法現在傳回 CompletableFuture 而不是 ListenableFuture

現在支援超級串流及其上的單一作用中消費者。

請參閱 使用 RabbitMQ Stream 外掛程式 以取得更多資訊。

@RabbitListener 變更

批次監聽器現在可以取用 Collection<?> 以及 List<?>。批次訊息傳遞配接器現在確保方法適用於取用批次。當將容器工廠 consumerBatchEnabled 設定為 true 時,也會將 batchListener 屬性設定為 true。請參閱 搭配批次的 @RabbitListener 以取得更多資訊。

MessageConverter 現在可以針對空值傳回 Optional.empty();目前由 Jackson2JsonMessageConverter 實作。請參閱 Message 轉換 以取得更多資訊

您現在可以透過容器工廠而非透過 @RabbitListener 上的屬性來設定 ReplyPostProcessor。請參閱 回覆管理 以取得更多資訊。

@RabbitListener (和 @RabbitHandler) 方法現在可以宣告為 Kotlin suspend 函數。請參閱 非同步 @RabbitListener 傳回類型 以取得更多資訊。

從 3.0.5 版開始,具有非同步傳回類型 (包括 Kotlin suspend 函數) 的監聽器會在失敗後叫用 RabbitListenerErrorHandler (如果已設定)。先前,錯誤處理常式僅在同步叫用時叫用。

連線工廠變更

AbstractConnectionFactory 中的預設 addressShuffleMode 現在為 RANDOM。當提供多個位址時,這會導致連線到隨機主機。請參閱 連線到叢集 以取得更多資訊。

LocalizedQueueConnectionFactory 不再使用 RabbitMQ http-client 程式庫來判斷哪個節點是佇列的領導者。請參閱 佇列親和性與 LocalizedQueueConnectionFactory 以取得更多資訊。