2010-04-29 51 views
1

我想知道是否可以分享最佳做法和常見錯誤,以便在製作大型數量的時間敏感的Web服務調用時。*客戶端*可伸縮性,適用於大量遠程Web服務調用

在我的情況下,我有一個SOAP和一個基於XML-RPC的Web服務,我不斷撥打電話。我預測這將很快成爲一個問題,因爲每秒鐘的呼叫數量將增長。

在更高級別上,我正在考慮將這些調用分批處理並每100毫秒將這些調用提交給Web服務。你能分享還有什麼作品嗎?

在更低層面上,我使用Apache Xml-Rpc客戶端和標準的javax.xml.soap。*包來實現我的客戶端。您是否知道這些軟件包的任何客戶端可擴展性相關技巧/提示/警告?

在此先感謝

尤里實現

回答

0

一件事是,在JavaScript中你總是處理一個事件泵:一些瀏覽器的事件發生,或定時器超時,然後一個JavaScript的塊得到執行。考慮到這種執行模式,你並不是真的想要有一個週期性的批處理和發送過程 - 你想要做的是將所有在一個事件泵中發生的調用(javascript執行塊以響應來自瀏覽器的一個事件)並將它們發送出去。

這是通過改變您的RPC代碼,使每一個呼叫隊列了參數和回調函數爲一個全局數組調用來完成的,如果它的排隊第一又稱它爲時間表與setTimeout(..., 0)功能將在歡送一切隊列並清除數組。

從此開始,然後您可以稍後使用其他執行模型進行試驗,例如在獲取它時發出第一個請求,並在當前事件泵完成後批量發送其他所有內容。

+0

我的問題一定比較清楚:我說的不是瀏覽器客戶端,而是我的分佈式網絡中的服務器之一,它可能會讓其他服務器的網絡服務調用數量驚人服務供應商。 我所有的服務器平臺代碼都是用Java編寫的,使用的庫有:Apache XML-RPC和標準低級別javax.xml.soap。* – Yuriy 2010-04-30 18:40:55