|
该版本仍在开发中,尚未被视为稳定。对于最新稳定版本,请使用 spring-cloud-stream 5.0.0! |
使用现有队列/交换
默认情况下,绑定器会自动设置主题交换,名称来源于目标绑定属性的值<前缀><目的地>. 如果未提供,目的地默认使用绑定名称。绑定消费者时,队列会自动被配置该名称<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.