2015-08-24 45 views
0

是否可以使用RabbitMQ話題交換實現以下場景。RabbitMq話題交換

可以說我有兩個隊列:

隊列1:路由關鍵MainRoute.Route1

隊列2:路由關鍵MainRoute.Route2

當我發表我的路由關鍵信息:

MainRoute.Route1 - >隊列1

MainRoute.Route2 - >隊列2

MainRoute - >隊列1和隊列2

是否有可能實現這一點而不實現一些特殊的過濾,路由過程?

如果不是,你可以請你提供一個可能的解決方案。

謝謝。

回答

0

這可以通過直接交換或主題交換來完成,並且在交換中需要4次綁定。

假設名爲「MainEx」爲例交換,路由鍵將成立這樣的:

 
| exchange | binding   | queue | 
| -------- | ---------------- | ------ | 
| MainEx | MainRoute.Route1 | Queue1 | 
| MainEx | MainRoute.Route2 | Queue2 | 
| MainEx | MainRoute  | Queue1 | 
| MainEx | MainRoute  | Queue2 | 

隨着話題的交流,你可以通過使用標誌發送多條消息到一個隊列。例如,將「MainRoute。#」綁定到「Queue3」將發送全部 MainRoute消息到隊列3。

但是,沒有辦法用單個綁定來做相反的事情。你需要創建多個綁定來做你想做的事情。

+0

是的,這實際上是我做的。是否有任何先進拓撲路由示例的示例。我認爲企業集成模式將是一個很好的參考,然而,這本書很淺。 – schizofreindly

+0

我不知道任何涵蓋高級路由配置的東西......但我真的不確定是否有很多高級路由功能。我寫了一本書,涵蓋了更多介紹級別的人,但仍然在努力理解何時使用每種類型的交換,但https://leanpub.com/rabbitmq-structures-and-layout不知道它是否會幫助你的情況,但它可能。 –