Spring Cloud Stream Rabbit Binder路由密钥总是'#'

时间:2017-07-20 06:39:11

标签: spring-cloud spring-cloud-stream spring-cloud-dataflow spring-rabbitmq

版本:Spring Boot:1.4.2.RELEASE Spring Cloud Deps:Brixton.SR7

这是我的处理器应用程序的application.properties。

logging.level.=DEBUG
server.port=0
logging.file=traveller-events-processor.log
server.port=0
spring.cloud.stream.rabbit.bindings.input.consumer.bindingRoutingKey='aa'
spring.cloud.stream.rabbit.bindings.input.consumer.bindingRoutingKey=aa
spring.cloud.stream.rabbit.bindings.input.consumer.bindQueue=true
spring.cloud.stream.rabbit.bindings.input.consumer.routing-key='aa'
spring.cloud.stream.rabbit.bindings.input.consumer.routingKey='aa'
spring.cloud.stream.bindings.input.destination=events-exchange
spring.cloud.stream.bindings.input.group=eventconsumersgroup
spring.cloud.stream.bindings.output.destination=work.out
spring.cloud.stream.bindings.output.contentType=text/plain
spring.cloud.stream.bindings.output.binder=rabbit
spring.cloud.stream.bindings.output.group=traveller-events-output-group

当我启动此应用程序时,将按预期创建事件交换并绑定到名为:events-exchange.eventconsumersgroup的队列(也可以)。但是,路由密钥始终是#'。我尝试过从各种文件中捕获的所有选项。我在这里错过了什么吗?

我希望这个应用程序只订阅某些消息(我想通过路由密钥实现)。

1 个答案:

答案 0 :(得分:3)

我看到Brixton.SR7使用了Spring Cloud Stream的1.0.2.RELEASE,我似乎没有找到{"Level 1", "Level 5", "Level 3", "Level 4", "Level 2", "Level 6", "Level 7", "Level 8", "Level 9"} 作为Rabbit消费者属性。您是否要升级到Spring Cloud Camden版本或最新版本,以便您可以尝试使用消费者属性:routingKey如上所述here