既存のキュー / 交換の使用

デフォルトでは、バインダーは、宛先バインディングプロパティ <prefix><destination> の値から派生した名前でトピック交換を自動的にプロビジョニングします。指定しない場合、宛先はデフォルトでバインディング名になります。コンシューマーをバインドする場合、キューは <prefix><destination>.<group> という名前で自動的にプロビジョニングされます(group バインディングプロパティが指定されている場合)。または、group がない場合は、匿名の自動削除キューがプロビジョニングされます。キューは、非パーティションバインディングの場合は "match-all" ワイルドカードルーティングキー(#)、パーティションバインディングの場合は <destination>-<instanceIndex> を使用して交換にバインドされます。プレフィックスは、デフォルトでは空の String です。出力バインディングが requiredGroups で指定されている場合、キュー / バインディングはグループごとにプロビジョニングされます。

このデフォルトの動作を変更できるウサギ固有のバインディングプロパティがいくつかあります。

使用したい既存の交換 / キューがある場合、交換の名前が myExchange で、キューの名前が myQueue であると仮定すると、次のように自動プロビジョニングを完全に無効にできます。

  • spring.cloud.stream.bindings.<binding name>.destination=myExchange

  • spring.cloud.stream.bindings.<binding name>.group=myQueue

  • spring.cloud.stream.rabbit.bindings.<binding name>.consumer.bindQueue=false

  • spring.cloud.stream.rabbit.bindings.<binding name>.consumer.declareExchange=false

  • spring.cloud.stream.rabbit.bindings.<binding name>.consumer.queueNameGroupOnly=true

バインダーにキュー / 交換をプロビジョニングさせたいが、ここで説明したデフォルト以外のものを使用してプロビジョニングしたい場合は、次のプロパティを使用します。詳細については、上記のプロパティドキュメントを参照してください。

  • spring.cloud.stream.rabbit.bindings.<binding name>.consumer.bindingRoutingKey=myRoutingKey

  • spring.cloud.stream.rabbit.bindings.<binding name>.consumer.exchangeType=<type>

  • spring.cloud.stream.rabbit.bindings.<binding name>.producer.routingKeyExpression='myRoutingKey'

autoBindDlq が true の場合、デッドレター交換 / キューを宣言するときに使用される同様のプロパティがあります。