2010-03-31 70 views
6

經過大量的書籍和網絡閱讀後,我發現WCF和MSMQ可用於實現高吞吐量的信息提示。我見過的信息提到了在從單個MSMQ隊列中讀取的場中使用多個WCF服務。問題是我在這裏和那裏發現了可以完成高吞吐量的段落,但似乎找不到如何實現它的文檔。 以下是MSDN文章的摘錄。負載均衡WCF和共享高吞吐量的遠程MSMQ

下面的段落是從最佳實踐排隊的通訊 http://msdn.microsoft.com/en-us/library/ms731093.aspx 爲了實現更高的吞吐量和可用性,使用從隊列中讀取WCF服務的一個農場。這要求所有這些服務都在相同的端點上公開相同的合同。服務器場方法最適合具有高生產率消息的應用程序,因爲它使大量服務都可以從同一隊列讀取。

這就是我試圖解決的問題。我有一個內部網應用程序,客戶端向WCF服務發送請求。但我想要在服務器場中的多個服務器上平衡WCF服務的能力。當隊列中有一個項目可用時,我還希望場中的這些WCF服務能夠從遠程MSMQ執行事務性讀取。如果可能的話,我遇到的一個問題是我不理解WCF從遠程隊列中檢索消息的激活過程。

如果這是可能的,是否有人知道任何文章或網絡廣播,可以詳細解釋它?

BarDev

+0

任何示例代碼? – Kiquenet 2010-07-20 18:41:10

回答

4

我不知道任何文章,但作爲一個概念證明,我跑了反對的MSMQ現有的WCF應用程序的多個實例。

發生了什麼事情是,如果10個消息已經存在於隊列中,它們僅由wcf實例中的一個來處理。

然而,所有隨後發佈到隊列中的消息幾乎在所有wcf實例之間劃分,提供了一個相當整齊的負載平衡解決方案。

你需要做的是建立針對MSMQ運行一個WCF服務,確保其工作正常,然後再從那裏通過運行WCF服務的越來越多的情況下,看看發生了什麼