使用现有队列/交换
默认情况下,绑定器会自动设置主题交换,名称来源于目标绑定属性的值<前缀><目的地>.
如果未提供,目的地默认为绑定名称。
绑定消费者时,队列会自动以该名称配置<prefix><destination>.<group>(如果 a群绑定属性被指定),或者在没有 时使用匿名自动删除队列群.
对于非分区绑定,队列将被绑定到交换局,使用“匹配全”通配符路由密钥()或#<destination>-<instanceIndex>对于分区绑定。
前缀为空字符串默认。
如果输出绑定被指定为必要组,每个组都会预约一个队列/绑定。
有许多兔子专用的绑定属性允许你修改这种默认行为。
如果你有现有的交易所/队列想使用,可以完全关闭自动配置,前提是交换所已被命名我的交换队列被命名为我的队列:
-
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.