此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 spring-cloud-stream 4.1.4spring-doc.cn

使用现有队列/交易所

默认情况下,Binder 将自动配置主题交换,其名称派生自 destination binding property 的值。 如果未提供,则 destination 默认为绑定名称。 绑定使用者时,将自动为队列配置名称(如果指定了 binding 属性),或者在没有 . 队列将使用 “match-all” 通配符路由键 () 绑定到非分区绑定或分区绑定的交换。 默认情况下,前缀为空。 如果使用 指定了输出绑定,则将为每个组配置一个队列/绑定。<prefix><destination><prefix><destination>.<group>groupgroup#<destination>-<instanceIndex>StringrequiredGroupsspring-doc.cn

有许多特定于 rabbit 的绑定属性允许您修改此默认行为。spring-doc.cn

如果您有要使用的现有 exchange/queue,则可以按如下方式完全禁用自动配置,假设 exchange 已命名且队列已命名:myExchangemyQueuespring-doc.cn

  • spring.cloud.stream.bindings.<binding name>.destination=myExchangespring-doc.cn

  • spring.cloud.stream.bindings.<binding name>.group=myQueuespring-doc.cn

  • spring.cloud.stream.rabbit.bindings.<binding name>.consumer.bindQueue=falsespring-doc.cn

  • spring.cloud.stream.rabbit.bindings.<binding name>.consumer.declareExchange=falsespring-doc.cn

  • spring.cloud.stream.rabbit.bindings.<binding name>.consumer.queueNameGroupOnly=truespring-doc.cn

如果您希望 Binders 预置 queue/exchange,但您希望使用此处讨论的默认值以外的其他功能来执行此操作,请使用以下属性。 有关更多信息,请参阅上面的属性文档。spring-doc.cn

  • spring.cloud.stream.rabbit.bindings.<binding name>.consumer.bindingRoutingKey=myRoutingKeyspring-doc.cn

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

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

在声明死信交换/队列时,会使用类似的属性,当 is 时。autoBindDlqtruespring-doc.cn