2.4 以降の 3.0 の変更点

Java 17, Spring Framework 6.0

このバージョンには Spring Framework 6.0 と Java 17 が必要です

リモーティング

リモート機能 (RMI を使用) はサポートされなくなりました。

観測

タイマーの監視と Micrometer を使用したトレースの有効化がサポートされるようになりました。詳細については、Micrometer Observation を参照してください。

ネイティブイメージ

ネイティブイメージの作成がサポートされます。詳細については、ネイティブイメージを参照してください。

AsyncRabbitTemplate

AsyncRabbitTemplate は ListenableFuture の代わりに CompletableFuture を返すようになりました。詳細については、非同期 Rabbit テンプレートを参照してください。

ストリームサポートの変更

RabbitStreamOperations および RabbitStreamTemplate メソッドは、ListenableFuture の代わりに CompletableFuture を返すようになりました。

スーパーストリームとその単一のアクティブコンシューマーがサポートされるようになりました。

詳細については、RabbitMQ ストリームプラグインの使用を参照してください。

@RabbitListener の変更

バッチリスナーは List<?> だけでなく Collection<?> も使用できるようになりました。バッチメッセージングアダプターにより、メソッドがバッチの使用に適していることが保証されるようになりました。コンテナーファクトリ consumerBatchEnabled を true に設定すると、batchListener プロパティも true に設定されます。詳細については、"バッチ処理を伴う @RabbitListener" を参照してください。

MessageConverter は null 値に対して Optional.empty() を返すことができるようになりました。これは現在 Jackson2JsonMessageConverter によって実装されています。詳細については、Message からの変換を参照してください。

@RabbitListener のプロパティではなく、コンテナーファクトリを介して ReplyPostProcessor を構成できるようになりました。詳細については、返信管理を参照してください。

@RabbitListener (および @RabbitHandler) メソッドを Kotlin suspend 関数として宣言できるようになりました。詳細については、"非同期 @RabbitListener 戻り型" を参照してください。

バージョン 3.0.5 以降、非同期戻り型 (Kotlin サスペンド関数を含む) を持つリスナーは、障害後に RabbitListenerErrorHandler (構成されている場合) を呼び出します。以前は、エラーハンドラーは同期呼び出しでのみ呼び出されていました。

接続ファクトリの変更

AbstractConnectionFactory のデフォルトの addressShuffleMode は RANDOM になりました。これにより、複数のアドレスが提供された場合、ランダムなホストに接続されます。詳細については、クラスターへの接続を参照してください。

LocalizedQueueConnectionFactory は、RabbitMQ http-client ライブラリを使用して、どのノードがキューのリーダーであるかを判断しなくなりました。詳細については、キューアフィニティと LocalizedQueueConnectionFactory を参照してください。