[英]How to make Spring Cloud Stream create RabbitMQ queues and binding when the application has no producers?
我正在使用Spring Boot 2.0.1,并且从以下位置导入了Spring云依赖项:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.RC1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
我相信感兴趣的依赖项如下:
<dependencies>
...
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-rabbit</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-reactive</artifactId>
</dependency>
...
</dependencies>
在我的application.yaml
我添加了多个使用者绑定:
spring:
cloud:
stream:
bindings:
input1:
bindingRoutingKey: key1.#
binder: rabbit
group: group1
destination: dest-group1
transacted: true
input2:
bindingRoutingKey: key2.#
binder: rabbit
group: group2
destination: dest-group2
transacted: true
例如,我在这里阅读了一个示例,应该将requiredGroups
添加到生产者,以便自动创建队列和绑定。 但是我的应用程序不产生任何消息,它仅消耗其他应用程序发布的消息,因此我没有定义任何生产者。 我试图修改application.yaml
文件以仅添加一个虚拟生产者:
spring:
cloud:
stream:
bindings:
dummyProducer:
producer:
requiredGroups: group1,group2
input1:
bindingRoutingKey: key1.#
binder: rabbit
group: group1
destination: dest-group1
transacted: true
input2:
bindingRoutingKey: key2.#
binder: rabbit
group: group2
destination: dest-group2
transacted: true
但这是行不通的。 所以我的问题是:
我应该如何修改我的application.yaml
文件(以及可能的代码,如果需要)以使Spring Cloud流在启动时创建队列和绑定?
通常,我们仅在生产方进行交换; 除非设置了required-groups
否则我们不提供队列。
在消费者方面,我们总是提供队列(和交换)。
如果那没有发生,那是其他的错误。 你有@EnableBinding
吗?
显示您的应用程序代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.