2016-12-27 50 views
0

在我的應用程序中,我使用Spring雲流來集成Rabbit MQ。默認情況下,Spring雲流將創建目標作爲Rabbit MQ中類型主題的交換。如何配置春季雲流來創建類型扇出的交換?Spring Cloud Stream Rabbit MQ扇出交換

+0

請解釋你爲什麼需要'fanout'交換? –

+0

我們有一個[未解決的問題](https://github.com/spring-cloud/spring-cloud-stream-binder-rabbit/issues/34),以提供超過當前自由配置的更多選項。 –

+0

@ArtemBilan話題需要路由模式。我的Producer應用程序是一個Java應用程序,我正在使用Spring Cloud Stream與Rabbit MQ集成。我的客戶應用程序是一個NodeJS應用程序,它訂閱隊列並將隊列綁定到由製作人創建的交換。但是當生產者向交易所發佈消息時,它不會進入隊列。隊列總是空的。我認爲一個隊列需要路由模式,而綁定到一個我無法使用spring雲流配置的交換。所以我正在使用工作正常的類型扇出交換 – auhuman

回答

2
  1. 您絕對應該從消費者端或代理商綁定您的隊列。這不應該是Spring Cloud流綁定器級別。爲了您的使用情況,你可以考慮結合鍵爲#

當隊列綁定了「#」(哈希)結合鍵 - 它將收到的所有郵件,而不管路由關鍵的 - 就像在粉絲交流中一樣。

https://www.rabbitmq.com/tutorials/tutorial-five-java.html

  • 你仍然可以使用你的消費者需要的扇出交換,但同樣的代理綁定功能應參與綁定你的扇出交換這個SCST話題通過相同的#交換關鍵技巧。
  • +0

    謝謝@Artem Bilan。這是我提出的問題的替代解決方案/臨時解決方案。但完全符合我的要求 – auhuman

    +0

    @Artem Bilan然後'Fanout'和'topic + routing key#'有什麼區別? – piechuckerr

    +0

    在表演。 'Fanout'不會嘗試檢查'路由鍵'。 –