2009-09-08 54 views
5

是否有多個使用者在單個MSMQ實例上偵聽並使用Selective Consumer接口讓每個消費者處理不同的子消息?我似乎無法使用pub/sub正常工作 - 隊列上的單個使用者可以正常工作,但是當使用> 1個使用者(同一個可執行文件的多個實例)時,任何地方都不會顯示任何消息。據我瞭解,這不是'競爭消費者'的情況,因爲只有一個消費者會處理一條消息。MassTransit中的單個隊列的多個使用者

任何幫助或指針表示讚賞。

回答

2

如果您使用MassTransit從MSMQ隊列中分派消息,建議將該隊列放在該框的本地。這就是說,如果您有多個進程爲了分發消息加載而從同一個隊列中讀取數據,則可以使用選擇性接收來僅使用與該進程相關的每個實例中的消息。例如,如果您有多個應用程序實例將消息發送到服務,並且該服務使用相關消息進行響應,則可以通過標識符訂閱相關消息,並且只會傳遞那些訂閱消息。未被選中的消息將保留在隊列中,直到由任何感興趣的進程處理。

由於此模式,強烈建議在消息上設置到期日,以便忽略響應不會隨時間堵塞隊列。

當通過消息傳遞複製請求/響應模式時,此場景很常見。

相關問題