是否可以将多个主题从交换绑定到单个队列? 例如,我有生产者宣布交换并发送三个主题 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
答案 0 :(得分:1)
您目前无法通过属性配置执行此操作,但您可以自行添加第二个绑定,可以在管理UI上手动添加,也可以添加Exchange
,Queue
和Binding
{ {1}}到应用程序。您不能简单地添加第二个@Bean
bean,因为队列在@Binding
(当应用程序首次启动且没有队列存在时)时仍然存在。
请参阅Spring AMQP参考手册中的Configuring the broker。
这项技术不适用于匿名消费者(RabbitAdmin
没有指定...group
属性),因为队列名称未知。