【发布时间】:2018-11-25 03:06:08
【问题描述】:
我有一个 Spring Cloud Stream 应用程序,它使用 RabbitMQ 绑定器来使用消息(它不会产生任何消息)。 application.yaml 文件如下所示:
spring:
cloud:
stream:
rabbit:
bindings:
x:
consumer:
bindingRoutingKey: x.z.#
queueNameGroupOnly: true
y:
consumer:
bindingRoutingKey: y.z.#
queueNameGroupOnly: true
bindings:
x:
binder: rabbit
group: q1
destination: x
y:
binder: rabbit
group: q2
destination: y
这将在 RabbitMQ 中创建两个队列:
-
q1与路由密钥x.z.#交换x -
q2与路由密钥y.z.#交换y
我想创建一个单个队列,它使用多个交换和路由键。我知道我无法将交换绑定到来自application.yaml 的多个路由键(请参阅this SO 问题),因此我怀疑我无法将 Spring Cloud Stream 配置为对单个绑定使用多个目标(交换) .
所以我的问题是,我可以以编程方式声明一个binding 从多个交易所消费吗?如果这样做,是否需要在application.yaml 文件中保留任何内容?
我该怎么办?
【问题讨论】:
标签: spring-boot rabbitmq spring-amqp spring-cloud-stream spring-rabbit