spring cloud bus - 重命名rabbitmq队列?

时间:2016-10-18 22:22:50

标签: java spring-boot rabbitmq spring-cloud-config spring-cloud-stream

有没有办法告诉spring bus重命名rabbitmq队列?在启动时,它们似乎只是一些随机值,如下所示:

springCloudBus.anonymous.4zzIP0z-TH6oIza5mCun7Q

尝试让spring总线将其重命名为更易于阅读的可预测队列名称。例如:

testQueue

或了解其持有消息的服务。

我尝试将以下内容添加到boot.un的application.yml上:

spring:
   cloud: 
     stream:
       bindings:
         output:
           destination: testQueue

无济于事。请帮忙!!

1 个答案:

答案 0 :(得分:1)

注意:匿名组对于Spring Cloud Bus正常运行至关重要。

使用小组制作

a)订阅持久,这意味着应用程序将接收所有事件(包括在未运行时发送的事件)

b)使用群组意味着应用可以成为竞争消费者,这意味着事件不会被广播

c)不再自动删除队列

您在spring-cloud-bus入站/出站渠道中设置的目的地是rabbitmq交换而不是队列。

对于spring-cloud-bus出站频道名称为springCloudBusOutput

因此,您的配置需要: spring: cloud: stream: bindings: springCloudBusOutput: destination: testExchange 目的地名称 testExchange 是交换名称,而不是queue名称。 要避免队列中的anonymous名称,您可以为group频道绑定设置inbound名称。

spring: cloud: stream: bindings: springCloudBusInput: destination: testExchange group: testQueue

这将使队列名称为testExchange.testQueue