我正在考慮在基於一堆WCF服務的產品中添加隊列函數。我讀過一些關於MSMQ的知識,首先我認爲這是我需要的,但我不確定,並且正在考慮將隊列放入數據庫表中。我想知道這裏的somone是否會得到一些反饋意見。在負載平衡環境中的WCF服務之間的MSMQ
基本上,我打算在http上調用外觀WCF服務。立面服務應該只將所有傳入消息寫入隊列,以對呼叫系統作出快速響應。隊列中的消息應該由另一個組件來處理,這些組件可以是WCF服務或Windows服務,具體取決於我選擇的隊列。
該產品運行在負載平衡的環境中,具有2到n個Web服務器。
我在考慮我的選項和問題是:
- 要讓門面WCF寫入到MSMQ,然後有anothther WCF服務從隊列中讀取做消息的處理。從我讀到的內容來看,我對這種替代方法並不感到自信,因爲它將如何在負載平衡的環境中工作。
1A。 MSMQ應該放在哪裏?每個Web服務器上有一個?一個在單獨的服務器上?在單獨的服務器上多重? (不考慮冗餘的需要,並且罕見情況下的數據可能丟失並重新發送)
1B。如果我想讓系統冗餘,設計會如何影響?我希望能夠保持MSMQ而不丟失該隊列中的數據,從而失去一臺服務器(它再也不會在線)。從我讀過的有關MSMQ的文章中,我可以看出將MSMQ放置在Windows羣集上的唯一選擇。那是對的嗎? (我想避免使用這個窗口集羣)。
- 第二個設計方案是讓外觀WCF服務將隊列寫入數據庫。然後有兩個或多個Windows服務來處理隊列。我對這個選擇沒有任何問題。如果你想知道爲什麼我不選擇這個,因爲它對我來說似乎更簡單,那是因爲我想建立這個不會爲解決方案引入任何Windows服務,我相信MSMQ得到了我不想要的功能代碼我自己,我也很好奇使用MSMQ,因爲我從來沒有使用它。
問候 哈坎
您提到了兩個選項,一箇中央隊列或帶有中央接收器的本地隊列。我會閱讀你提供的鏈接,也許他們會提供幫助。我會告訴你。由於我是新來的如何做WCF-MSMQ的事情,我不知道我在想什麼與「與MSMQ集成的WCF」有什麼不同。 – 2011-05-05 07:31:58
「帶有MSMQ集成的WCF」意味着使用MSMQ作爲傳輸協議,而不是HTTP將WCF調用傳遞給服務。 – 2011-05-05 17:38:08
這與「WCF MSQM集成」有何不同之處在於爲我節省了一些編碼嗎? – 2011-05-10 09:36:11