0

我們在MSMQ之上使用NServiceBus。現在我們正在採取行動來使用RabbitMQ--我們希望有一個集中的隊列,並發現RabbitMQ最能滿足我們的需求。NServiceBus RabbitMQ - DirectRoutingTopology與每種消息類型的單獨交換

轉換我們的項目非常簡單,在RabbitMQ中我們注意到它爲每個端點和該端點中的消息類型創建了交換(和隊列)。

我讀過更改路由拓撲部分http://docs.particular.net/nservicebus/rabbitmq/configuration-api並寫有

對於不太複雜的情況下,您可以使用DirectRoutingTopology

什麼文件未能解釋是提出解決方案的參數爲complex

我搜索了並找不到解釋什麼被認爲是複雜的地方,何時DirectRoutingTopology應該用於使用多個交換的默認選項。或者每種方法之間的差異/性能考慮因素是什麼。

有誰知道嗎?

回答

0

這不是真正的性能問題,更重要的是以最好的方式使用該技術。

每個隊列都是要完成的工作單元。假設我發送messageA,如果有1個工作單元要完成,那麼與1個隊列進行1次交換來處理消息是有意義的。

比方說,你有messageB需要採取行動X Y到被執行。在這種情況下,你有1個對攻,將消息發送到2個不同的隊列(FANOUT交易所)

比方說,你有messageC需要行動X ORŸ基於參數來執行。在這種情況下,您希望使用指定路由的DIRECT交換指定給2個不同的隊列(但消息只會在2個隊列中的1箇中結束)。

希望這很有道理。