默认spring.cloud.stream.rabbit。*属性适用于多个渠道?

时间:2018-04-12 12:17:29

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

使用Spring云流,您可以通过指定"默认"来避免每个频道的冗余属性。属性。

例如,如果我有2个频道绑定到同一目的地/交换机,我可以这样做:

spring.cloud.stream.default.destination=myExchange

spring.cloud.stream.bindings.myChannel1.group=queue1
spring.cloud.stream.bindings.myChannel2.group=queue2

并且queue1和queue2都将绑定到myExchange。

这是有记录的,我是为某些属性做的。

但是......我想对 RabbitMQ 绑定属性做同样的事情。

例如,如果我想为所有的消费者/队列使用DLQ,请执行以下操作:

spring.cloud.stream.rabbit.default.consumer.auto-bind-dlq=true
spring.cloud.stream.rabbit.default.consumer.dlq-ttl=10000
spring.cloud.stream.rabbit.default.consumer.dlq-dead-letter-exchange=

否则,我必须为每个频道指定相同的3行。

有没有办法做到这一点?我尝试了几种不同的排列无济于事。

顺便说一下,我是关于spring-cloud-starter-stream-rabbit的版本1.2.1.RELEASE。

感谢。

2 个答案:

答案 0 :(得分:1)

支持。请参阅用户指南的https://docs.spring.io/spring-cloud-stream/docs/Elmhurst.RELEASE/reference/htmlsingle/#binding-properties部分 To avoid repetition, Spring Cloud Stream supports setting values for all channels, in the format of spring.cloud.stream.default.<property>=<value>

答案 1 :(得分:0)

根据Spring Cloud Stream文档,自版本2.1.0.RELEASE起可能。

请参见9.2 Binding Properties

  

在避免重复使用扩展绑定属性时,   应该使用这种格式   spring.cloud.stream.<binder-type>.default.<producer|consumer>.<property>=<value>

不幸的是,到目前为止,我无法使其正常工作。有人知道吗?