使用現有佇列/交換器

預設情況下,繫結器會自動預配一個主題交換器,其名稱由目標繫結屬性<prefix><destination>的值派生而來。如果未提供,目標預設為繫結名稱。當繫結消費者時,如果指定了group繫結屬性,將自動預配一個名為<prefix><destination>.<group>的佇列;如果沒有group,則預配一個匿名的、自動刪除的佇列。該佇列將透過“匹配所有”萬用字元路由鍵(#)繫結到交換器,用於非分割槽繫結;對於分割槽繫結,則使用<destination>-<instanceIndex>。預設情況下,字首為空String。如果輸出繫結指定了requiredGroups,則將為每個組預配一個佇列/繫結。

有一些特定於 RabbitMQ 的繫結屬性允許您修改此預設行為。

如果您希望使用現有交換器/佇列,可以完全停用自動預配,方法如下(假設交換器名為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'

autoBindDlqtrue時,宣告死信交換器/佇列時也會使用類似的屬性。

© . This site is unofficial and not affiliated with VMware.