![](/img/trans.png)
[英]How to Shutdown/Stop RabbitMQ queue of Spring Cloud stream bindings
[英]Programmatically declare bindings in Spring Cloud Stream (RabbitMQ)?
我有一個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中創建兩個隊列:
xz#
交換x
q1
yz#
交換y
q2
yz#
我想創建一個消耗多個交換和路由鍵的 隊列 。 我知道我無法將交換綁定到來自application.yaml
多個路由鍵(請參閱此 SO問題),因此我懷疑無法將Spring Cloud Stream配置為對單個綁定使用多個目的地(交換)。
所以我的問題是,我可以以編程方式聲明一個binding
消耗多個交換嗎? 如果這樣做,有什么需要保留在application.yaml
文件中的嗎?
我該怎么辦?
您可以使用交換到交換綁定來滿足此要求。
x -> z
y -> z
然后從與#
綁定的z上的單個隊列中消費。
您可以定義交換,以在啟動應用程序@Bean
綁定交換為@Bean
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.