Spring Cloud Stream RabbitMQ消费者配置多绑定路由键问题
解决Spring Cloud Stream Rabbit多路由键绑定问题
我来帮你搞定这个问题——在你使用的Finchley.RC1版本的Spring Cloud Stream中,Rabbit消费者的多路由键配置不能直接用逗号分隔,得换用数组/列表的配置方式才行。
问题原因
在Finchley及更早的Spring Cloud版本中,bindingRoutingKey属性默认只识别单个字符串值,逗号分隔的写法不会被解析成多个路由键,所以你的配置没生效。
正确配置示例(YAML格式)
把多路由键改成YAML列表形式:
spring: cloud: stream: rabbit: bindings: input1: consumer: bindingRoutingKey: - key1.# - key2.# bindings: input1: binder: rabbit group: group1 destination: dest-group1
如果你用的是.properties格式,写法如下:
spring.cloud.stream.rabbit.bindings.input1.consumer.bindingRoutingKey[0]=key1.# spring.cloud.stream.rabbit.bindings.input1.consumer.bindingRoutingKey[1]=key2.#
效果说明
配置完成后,Spring Cloud Stream会自动为你的input1通道对应的队列,同时绑定key1.#和key2.#两个路由键到dest-group1对应的Exchange上,这样就能接收匹配这两个路由键的消息了。
内容的提问来源于stack exchange,提问作者Johan
相关产品推荐
相关产品推荐

