2013-10-30 44 views
2

我們試圖讓許多應用程序一起通信,並通過NSB驅動彼此的動作。我希望將每個應用放入自己的隊列中,原因有兩個:讓支持更容易排除問題並(可能)有另一個可擴展應用的位置。巴士將託管在Windows服務中,可能只是所有應用程序將共享的單個實例。每個應用程序都可以發佈一條消息,該消息將被Windows服務器接收並使用另一個應用程序中的程序集進行處理,然後響應消息將被放回到同一隊列中。有可能所有應用程序和窗口服務器都可以安裝在同一臺計算機上,安裝許多可以做同樣事情的Windows服務對我來說聽起來不是一個好的答案。有沒有辦法讓一個Windows服務託管NSB來監聽多個隊列?NServiceBus單進程,但多輸入隊列

謝謝。

+0

NServiceBus強制執行一個隊列到一個進程。 這個問題我有點類似於你https://github.com/Particular/NServiceBus/issues/219 –

回答

2

這是可能的使用衛星,但我不會推薦它用於不同的應用程序。我想你會發現,當你開始擴展應用程序時,無論如何你最終都會在Windows服務和隊列之間產生一對一的關係。

此外,通常情況下會更細化,每個隊列/服務有1個消息類型。我們在內部已經與第三方進行了一些整合。這裏是一個use case for using a Satellite的描述。

+0

謝謝,亞當。帖子裏面的鏈接被打破,順便說一句。我明白你來自哪裏。有可能我們將來必須得到這條路線。目前,我們將要解決一個隊列,但它將是可配置的,以便我們可以在運行中切換到多個隊列。我知道可擴展性很重要,但現成軟件的安裝簡單性同樣重要。最重要的是,我們真的不知道我們會先發送什麼消息,這些消息也是動態的。感謝您的反饋。 –

+1

我想到了一些,我認爲每個進程對一個輸入(監聽)隊列的限制對我來說似乎完全是任意的。就我個人而言,我不喜歡沒有很好理由的限制,我不能想到這個具體限制的原因。 –