2012-01-31 59 views
11

作爲練習,我試圖找到一個實現競爭消費者的例子。如何實施競爭性消費解決方案?

許多生產商 - > MSMQueue < - 競消費者

到目前爲止,我沒有找到如何實現這一目標的任何文件。我第一次嘗試弄清楚如何在MassTransit或NServiceBus中實現如何實現多層間接尋址。

任何幫助將不勝感激。

回答

13

使用MassTransit和MSMQ,您可以使用Distributor組件實現此功能。

請注意,如果您使用MassTransit與RabbitMQ而不是MSMQ,您可以使用分銷商,只需通過爲所有消費者設置相同的隊列名稱實行競爭性的消費情況沒有。如果您可以選擇MSMQ和RabbitMQ,我會選擇RabbitMQ,因爲您可以獲得更好的管理工具和SSL加密,並且它也可以很好地與防火牆配合使用。

有關於此的一些討論在MassTransit Google Groups forum

+4

作爲編寫經銷商的人,我第二次使用RabbitMQ。我們每天通過分銷商抽取數百萬條消息,但RabbitMQ使這一切變得更加容易。您不能使用相同的隊列從MSMQ讀取數據,每個使用者需要它自己的隊列,但分配器組件負責分配工作負載。 – Travis 2012-01-31 14:18:23

+0

謝謝,我會看看RabbitMQ。特拉維斯什麼是經銷商的機制?在輸入隊列中作爲單個消費者使用,並使用控制隊列調度工作人員的可用性? – ruslander 2012-01-31 14:49:52

+0

@ruslander - 正確的,這基本上是分銷商的工作原理。 – 2012-01-31 14:54:49