我在RabbitMQ中使用了春季云流。 (春季云版本是格林威治) 我有一个带有两个队列的主题,我想使用路由键将消息发送到每个队列。
但是它不能正常工作。
当我通过每个@Output通道发送消息时,消息会进入两个队列。 (我想要1条消息放入1个队列,但1条消息进入2个队列)
我的生产者配置在下面(实际代码在yaml中)
Spring.cloud.stream.bindings.output1.destination=topic-a
Spring.cloud.stream.bindings.output1.producer.requiredGroups=queue1
Spring.cloud.stream.bindings.output1.producer.bindingRoutingKey=queue1
Spring.cloud.stream.bindings.output1.producer.routingKeyExpression=queue1
Spring.cloud.stream.bindings.output2.destination=topic-a
Spring.cloud.stream.bindings.output2.producer.requiredGroups=queue2
Spring.cloud.stream.bindings.output2.producer.bindingRoutingKey=queue2
Spring.cloud.stream.bindings.output2.producer.routingKeyExpression=queue2
我的使用者配置在下面
spring.cloud.stream.bindings.input1.destination=topic-a
spring.cloud.stream.bindings.input1.group=queue1
spring.cloud.stream.bindings.input1.consumer.durableSubscription=true
spring.cloud.stream.bindings.input1.consumer.bindingRoutingKey=queue1
spring.cloud.stream.bindings.input2.destination=topic-a
spring.cloud.stream.bindings.input2.group=queue2
spring.cloud.stream.bindings.input2.consumer.durableSubscription=true
spring.cloud.stream.bindings.input2.consumer.bindingRoutingKey=queue2
我也尝试了没有requiredGorups和bindingRoutingKey的情况,只在生产者配置中单独保留routingKeyExpression。
我将yaml中的routingKeyExpression值赋予了'''queue1'''或'“ queue1'”。
如果我发送带有output1的“第一条”消息和带有output2的“第二条”消息,
“第一”和“第二”消息位于topic-a.queue1中。 (路由键也显示为'topic-a'),而相同的两条消息也位于topic-a.queue2中。
总共生成4条消息。
我怎么了?
任何帮助将不胜感激。
答案 0 :(得分:0)