我們正在開發一個.NET應用程序,它必須使成千上萬的小型Web服務調用到第三方Web服務。我們更喜歡更「矮胖」的電話,但第三方不支持它。我們設計客戶端使用可配置數量的工作線程,並通過測試獲得針對一個多核計算機進行了相當優化的代碼。但是,我們仍然希望提高速度,並且正在研究跨多臺機器的工作。我們非常精通典型的客戶端/服務器/數據庫應用程序,但是對於多臺機器的設計來說是新的。所以,有幾個相關的問題:向多臺機器擴展工作的最佳方式是什麼?
- 是否有任何其他客戶端優化,除了多線程,我們應該看看可以提高HTTP請求/響應速度? (我應該注意到這是一個非標準的Web服務,所以使用WebClient實現,而不是WCF或SOAP客戶端)
- 我們當前的想法是使用WCF將工作塊發佈到MSMQ,並在一個或多個機器將工作從隊列中拉出。我們有WCF + MSMQ的經驗,但要確保我們不會錯過更好的選擇。今天還有其他更好的方法嗎?
- 我見過一些像DigiPede和微軟的HPC產品的第三方工具,但這些看起來像是矯枉過正。這些產品的任何經驗或原因,我們應該考慮他們在我們自己的?
嘗試ActiveMQ而不是MSMQ,喜歡它。 – Avram 2009-02-16 18:38:36
根據應用程序的不同,如果您已經在使用SQL Server,那麼SQL Server Service Broker而不是MSMQ可能是一個重大勝利。 – MichaelGG 2009-02-16 18:56:17