Rabbit spring cloud stream将主题绑定到单个队列

时间:2017-10-05 11:51:23

标签: java spring rabbitmq spring-cloud-stream

是否可以将多个主题从交换绑定到单个队列? 例如,我有生产者宣布交换并发送三个主题 log.verbose log.info log.error

我希望有两个消费者声明自己的队列并绑定到交换。 第一个消费者订阅前两个主题 log.verbose log.info ,另一个订阅所有主题。

是否可以为消费者1定义这样的配置?

spring.cloud.stream.bindings.input.destination=log
spring.cloud.stream.rabbit.bindings.input.consumer.bindingRoutingKey=log.info,log.verbose

enter image description here

1 个答案:

答案 0 :(得分:1)

您目前无法通过属性配置执行此操作,但您可以自行添加第二个绑定,可以在管理UI上手动添加,也可以添加ExchangeQueueBinding { {1}}到应用程序。您不能简单地添加第二个@Bean bean,因为队列在@Binding(当应用程序首次启动且没有队列存在时)时仍然存在。

请参阅Spring AMQP参考手册中的Configuring the broker

这项技术不适用于匿名消费者(RabbitAdmin没有指定...group属性),因为队列名称未知。

相关问题