このバージョンはまだ開発中であり、まだ安定しているとは見なされていません。最新の安定バージョンについては、Spring AMQP 3.2.5 を使用してください! |
1.4 以降の 1.5 の変更点
spring-erlang
はサポートされなくなりました
spring-erlang
jar は配布に含まれなくなりました。代わりに RabbitMQ REST API を使用してください。
CachingConnectionFactory
の変更
コンテナーキュー宣言の動作を制御するプロパティ
リスナーコンテナーコンシューマーは、開始時にキューを受動的に宣言して、ブローカーで確実に使用できるようにしようとします。以前は、これらの宣言が失敗した場合 (たとえば、キューが存在しなかったため)、HA キューが移動された場合、再試行ロジックは 5 秒間隔で 3 回再試行されるように修正されていました。キューがまだ存在しない場合、動作は missingQueuesFatal
プロパティによって制御されます (デフォルト: true
)。また、複数のキューからリッスンするように構成されたコンテナーの場合、キューのサブセットのみが使用可能な場合、コンシューマーは 60 秒の固定間隔で不足しているキューを再試行しました。
declarationRetries
、failedDeclarationRetryInterval
、retryDeclarationInterval
プロパティが設定可能になりました。詳細については、メッセージリスナーコンテナーの設定を参照してください。
DefaultMessagePropertiesConverter
の変更
DefaultMessagePropertiesConverter
を構成して、DataInputStream
ではなく String
に変換される LongString
の最大長を判別できるようになりました。コンバーターには、値を制限として受け取る代替コンストラクターがあります。以前は、この制限は 1024
バイトでハードコードされていました。(1.4.4 でも利用可能)。
@RabbitListener
の改善
@RabbitListener
用 @QueueBinding
bindings
属性は、queues
属性と相互に排他的なものとして @RabbitListener
アノテーションに追加され、ブローカー上の RabbitAdmin
による宣言のために queue
、その exchange
、binding
を指定できるようになりました。
プロパティによる複数のキュー名
SpEL とプロパティプレースホルダーの組み合わせを使用して、リスナーに複数のキューを指定できるようになりました。
詳細については、アノテーション駆動型のリスナーエンドポイントを参照してください。
Exchange、Queue、Binding の自動宣言
これらのエンティティのコレクションを定義する Bean を宣言できるようになりました。RabbitAdmin
は、接続が確立されたときに宣言するエンティティのリストにコンテンツを追加します。詳細については、交換、キュー、バインディングのコレクションの宣言を参照してください。
RabbitTemplate
の変更
reply-address
が追加されました
reply-address
属性は、代替の reply-queue
として <rabbit-template>
コンポーネントに追加されました。詳細については、リクエスト / 応答メッセージを参照してください。(RabbitTemplate
の setter として 1.4.4 でも利用できます)。
receive
メソッドのブロック
RabbitTemplate
は、receive
および convertAndReceive
メソッドでのブロッキングをサポートするようになりました。詳細については、ポーリングコンシューマーを参照してください。
sendAndReceive
メソッドでは必須
sendAndReceive
および convertSendAndReceive
メソッドの使用時に mandatory
フラグが設定されている場合、リクエストメッセージを配信できない場合、呼び出しスレッドは AmqpMessageReturnedException
をスローします。詳細については、返信タイムアウトを参照してください。
RabbitManagementTemplate
が追加されました
管理プラグイン (英語) によって提供される REST API を使用して、RabbitMQ ブローカーを監視および構成するために、RabbitManagementTemplate
が導入されました。詳細については、RabbitMQ REST API を参照してください。
リスナーコンテナー Bean 名 (XML)
通常の Spring Bean 名のオーバーライドが適用されます。後の このリリースに移行するときに、 |
ただし、コンテナーをグループとして開始および停止することをサポートするために、新しい group
属性が追加されました。この属性が定義されている場合、このエレメントによって作成されたコンテナーは、型 Collection<SimpleMessageListenerContainer>
のこの名前の Bean に追加されます。このグループを繰り返し処理して、コンテナーを開始および停止できます。
クラスレベルの @RabbitListener
@RabbitListener
アノテーションをクラスレベルで適用できるようになりました。新しい @RabbitHandler
メソッドアノテーションと合わせて、ペイロード型に基づいてハンドラーメソッドを選択できます。詳細については、マルチメソッドリスナーを参照してください。
SimpleMessageListenerContainer
: BackOff サポート
SimpleMessageListenerContainer
に、consumer
スタートアップリカバリ用の BackOff
インスタンスを提供できるようになりました。詳細については、メッセージリスナーコンテナーの設定を参照してください。
チャネルクローズロギング
チャネル閉鎖のログレベルを制御するメカニズムが導入されました。チャネルクローズイベントのロギングを参照してください。
アプリケーションイベント
SimpleMessageListenerContainer
は、コンシューマーが失敗したときにアプリケーションイベントを発行するようになりました。詳細については、コンシューマーイベントを参照してください。
コンシューマータグの設定
以前は、非同期コンシューマーのコンシューマータグはブローカーによって生成されていました。このリリースでは、リスナーコンテナーに命名戦略を提供できるようになりました。コンシューマータグを参照してください。
MessageListenerAdapter
を使用する
MessageListenerAdapter
は、キュー名 (またはコンシューマータグ) からメソッド名へのマップをサポートするようになり、メッセージの受信元のキューに基づいて呼び出すデリゲートメソッドを決定します。
LocalizedQueueConnectionFactory
が追加されました
LocalizedQueueConnectionFactory
は、ミラーリングされたキューが実際に存在するクラスター内のノードに接続する新しい接続ファクトリです。
キューアフィニティと LocalizedQueueConnectionFactory
を参照してください。
匿名キューの命名
バージョン 1.5.3 以降、AnonymousQueue
名の生成方法を制御できるようになりました。詳細については、AnonymousQueue
を参照してください。