2013-06-21 82 views
1

我想通過easynetQ使用基於主題的路由。 在我的設置中,我有3個隊列(「A.B」,「A.C」,「B.C」)和交換「ex」。所有三個隊列都通過路由鍵「A.B」,「A.C」,「B.C」連接到「ex」。基於主題的EasyNetQ發佈

以下是我的代碼。

 var bus = RabbitHutch.CreateBus(MQConnectionString).Advanced; 
     var exchange = Exchange.DeclareTopic("ex"); 

     using (var publishChannel = bus.OpenPublishChannel()) 
     { 
      Message pat = new Message(); 
      while (i++ < 10) 
      { 
       pat.Name = "Vamsee-" + i; 
       pat.ID = Guid.NewGuid().ToString(); 
       if(i%3==0) 
       publishChannel.Publish(exchange, "A.*", new Message<Message>(pat)); 
       else 
       publishChannel.Publish(exchange, "A.C", new Message<Message>(pat)); 
      } 
     } 

這裏的時候,我的代碼發佈到「A 」,該消息不會全部(或)任何隊列中。我曾嘗試 「。*」, 「#」 或者

請建議

感謝 Vamsee

回答

1

你這有南轅北轍。您需要使用完整的路由密鑰發佈每條消息。隊列可以用通配符或特定的綁定鍵綁定,以便他們將收到正確的消息。如果您爲消費者包含代碼,則可能更容易更準確地診斷問題