1.2 以降の 1.3 の変更点

リスナーの同時実行

リスナーコンテナーは、ワークロードに基づくコンシューマー数の動的スケーリングをサポートするようになりました。または、コンテナーを停止せずにプログラムで同時実行数を変更することもできます。リスナーの同時実行を参照してください。

リスナーキュー

リスナーコンテナーでは、リッスンするキューを実行時に変更できるようになりました。また、構成されたキューの少なくとも 1 つが使用可能な場合、コンテナーが起動するようになりました。リスナーキューを参照

このリスナーコンテナーは、起動時に自動削除キューを再宣言するようになりました。auto-delete キューを参照してください。

コンシューマー優先

リスナーコンテナーがコンシューマー引数をサポートするようになり、x-priority 引数を設定できるようになりました。コンシューマー優先を参照してください。

排他的なコンシューマー

単一の exclusive コンシューマーで SimpleMessageListenerContainer を構成できるようになり、他のコンシューマーがキューを listen するのを防止できます。排他的なコンシューマーを参照してください。

Rabbit 管理者

durableautoDeleteexclusive の設定に関係なく、ブローカーにキュー名を生成させることができるようになりました。ブローカーの構成を参照してください。

直接交換バインディング

以前は、direct-exchange 構成の binding 要素から key 属性を省略すると、キューまたは交換がルーティングキーとして空の文字列にバインドされていました。これで、提供された Queue または Exchange の名前にバインドされます。空の文字列ルーティングキーでバインドする場合は、key="" を指定する必要があります。

AmqpTemplate の変更

AmqpTemplate は、いくつかの同期 receiveAndReply メソッドを提供するようになりました。これらは RabbitTemplate によって実装されています。詳細については、[ メッセージの受信 ] を参照してください。

RabbitTemplate は、ブローカーが使用できない場合に (オプションのバックオフポリシーを使用して) 再試行を試みる RetryTemplate の構成をサポートするようになりました。詳細については、再試行機能の追加を参照してください。

キャッシング接続ファクトリ

単一の接続を使用して Channel インスタンスのみをキャッシュする代わりに、Connection インスタンスとその Channel インスタンスをキャッシュするようにキャッシュ接続ファクトリを構成できるようになりました。接続とリソースの管理を参照してください。

バインディング引数

<exchange> の <binding> は、<binding-arguments> サブ要素の解析をサポートするようになりました。<headers-exchange> の <binding> を key/value 属性ペア (単一のヘッダーで一致させるため) または <binding-arguments> サブ要素 (複数のヘッダーで一致させるため) で構成できるようになりました。これらのオプションは相互に排他的です。ヘッダー交換を参照してください。

ルーティング接続ファクトリ

新しい SimpleRoutingConnectionFactory が導入されました。これにより、ConnectionFactories マッピングの構成が可能になり、実行時に使用するターゲット ConnectionFactory を決定できます。ルーティング接続ファクトリを参照してください。

MessageBuilder および MessagePropertiesBuilder

メッセージまたはメッセージプロパティを構築するための "Fluent API" が提供されるようになりました。メッセージビルダー API を参照してください。

RetryInterceptorBuilder 変更

リスナーコンテナーの再試行インターセプターを構築するための "Fluent API" が提供されるようになりました。同期操作の失敗と再試行のオプションを参照してください。

RepublishMessageRecoverer が追加されました

この新しい MessageRecoverer は、再試行が使い果たされたときに、失敗したメッセージを別のキュー (ヘッダー内のスタックトレース情報を含む) にパブリッシュできるようにするために提供されています。メッセージリスナーと非同期ケースを参照してください。

デフォルトのエラーハンドラー (1.3.2 以来)

デフォルトの ConditionalRejectingErrorHandler がリスナーコンテナーに追加されました。このエラーハンドラーは、致命的なメッセージ変換の問題を検出し、コンテナーにメッセージを拒否するように指示して、ブローカーが変換できないメッセージを継続的に再配信しないようにします。例外処理を参照してください。

リスナーコンテナーの "missingQueuesFatal" プロパティ (1.3.5 以来)

SimpleMessageListenerContainer に missingQueuesFatal というプロパティが追加されました (デフォルト: true)。以前は、不足しているキューは常に致命的でした。メッセージリスナーコンテナーの設定を参照してください。