我正在尝试配置我的应用程序以侦听现有的Rabbitmq队列,如果交换和队列不存在,则应用程序必须使用它们的相应名称和路由密钥来创建它们。
我正在使用Spring Clouud流尝试配置.properties或.yml文件中的所有内容,但遇到一些问题
这是我的配置:
spring.rabbitmq.dynamic=true
spring.rabbitmq.host=myHost
spring.rabbitmq.port=92375
spring.rabbitmq.username=myUsername
spring.rabbitmq.password=myPass
spring.cloud.stream.bindings.springCloudBusInput.destination=myExchange
spring.cloud.stream.bindings.springCloudBusInput.group=myQueue
spring.cloud.stream.rabbit.bindings.springCloudBusInput.consumer.exchangeAutoDelete=false
spring.cloud.stream.rabbit.bindings.springCloudBusInput.consumer.queueNameGroupOnly=true
spring.cloud.stream.rabbit.bindings.springCloudBusInput.consumer.exchangeType=direct
spring.cloud.stream.rabbit.bindings.springCloudBusInput.consumer.bindingRoutingKey=RKd
主要问题如下:
还有另外一些应用程序已经直接使用AmqpAdmin创建(如果不存在)交易所和名为“ myExchange”和“ myQueue”的队列。
我正在开发的应用程序还必须创建此类交换和队列(如果它们不存在)。
1-如果尚未创建交换和队列,而我部署了我的应用程序,即使我将queueNameGroupOnly = true设置为true,并且交换的绑定键为#,即使我设置了它,它也会创建名为myExchange.Myqueue的队列。绑定键= RKd
仅当尚不存在的情况下,如何使用usisng spring cloud bus和application.properties将其配置为使用名称“ myQueue”和key = RKd创建队列?
预先感谢