最新の安定バージョンについては、Spring AMQP 4.1.1 を使用してください! |
1.1 以降の 1.2 への変更
RabbitMQ バージョン
Spring AMQP はデフォルトで RabbitMQ 3.1.x を使用するようになりました (ただし、以前のバージョンとの互換性は維持されています)。RabbitMQ 3.1.x でサポートされなくなった機能 (フェデレーションエクスチェンジと RabbitTemplate の immediate プロパティ) については、非推奨となりました。
Rabbit 管理者
RabbitAdmin は、宣言が失敗したときに、交換、キュー、バインドの宣言を続行できるようにするオプションを提供するようになりました。以前は、失敗するとすべての宣言が停止していました。ignore-declaration-exceptions を設定すると、そのような例外は (WARN レベルで) ログに記録されますが、その後の宣言は続行されます。これが役立つ可能性がある例は、通常は他の宣言の進行を停止するわずかに異なる ttl 設定が原因で、キュー宣言が失敗した場合です。
RabbitAdmin は、getQueueProperties() と呼ばれる追加のメソッドを提供するようになりました。これを使用して、ブローカーにキューが存在するかどうかを判別できます (存在しないキューに対して null を返します)。さらに、キュー内の現在のメッセージ数と現在のコンシューマー数を返します。
Rabbit テンプレート
以前は、固定応答キューで …sendAndReceive() メソッドが使用された場合、2 つのカスタムヘッダーが相関データ用に使用され、応答キュー情報を保持および復元していました。このリリースでは、代わりに使用するカスタムプロパティを指定できますが、標準のメッセージプロパティ (correlationId) がデフォルトで使用されます。さらに、ネストされた replyTo 情報は、カスタムヘッダーを使用する代わりに、テンプレート内で内部的に保持されるようになりました。
immediate プロパティは非推奨です。RabbitMQ 3.0.x 以上を使用する場合は、このプロパティを設定しないでください。
キューおよびその他のアイテムの自動宣言
以前は、キュー、エクスチェンジ、バインディングを宣言するときに、宣言に使用された接続ファクトリを定義できませんでした。各 RabbitAdmin は、その接続を使用してすべてのコンポーネントを宣言しました。
このリリース以降、宣言を特定の RabbitAdmin インスタンスに制限できるようになりました。条件宣言を参照してください。
AMQP リモーティング
AMQP を RPC 呼び出しのトランスポートとして使用し、Spring リモート処理技術を使用するための機能が提供されるようになりました。詳細については、AMQP を使用した Spring リモート処理を参照してください。
リクエストされたハートビート
Several users have asked for the underlying client connection factory’s requestedHeartBeats property to be exposed on the Spring AMQP CachingConnectionFactory. This is now available. Previously, it was necessary to configure the AMQP client factory as a separate bean and provide a reference to it in the CachingConnectionFactory.