使用现有的队列/交换器
默认情况下,绑定器会自动 provision 具有与绑定属性 <prefix><destination> 的值同名的目标 topic exchange。目标默认为绑定名,如果未提供。当绑定使用者时,将自动 provision 名为 <prefix><destination>.<group> 的队列(如果指定了 group 绑定属性),或者没有 group 时使用匿名、自动删除队列。队列将使用“匹配全部”通配符路由键(#)进行非分区绑定或 <destination>-<instanceIndex> 进行分区绑定进行绑定。前缀默认为空 String。如果指定了带有 requiredGroups 的输出绑定,则为每个组 provision 队列/绑定。
有几种与兔子相关的绑定属性,允许您修改此默认行为。
如果您有一个想要使用的现有exchange/queue,您可以完全禁用自动配置,假设exchange名为myExchange,queue名为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。