2011-04-11 159 views
0

我的應用程序需要連接到Web服務才能獲取xml數據。我有四個Web服務端點。在客戶端使用Httpurlconnection負載平衡網絡服務器

什麼是負載平衡的Web服務的最佳方式是什麼?

我知道最好的方法是使用硬件/軟件負載平衡器,但我必須在客戶端做。

我已經開發了一個使用HttpURLConnection的客戶端,它對於任何一個終點都可以正常工作。

我打算使用哈希映射的URL和之後,逐一調用。

問候, 伊姆蘭

回答

1

沒有一箇中心點來統籌您的服務端點之間的連接的分佈,你幾乎僅限於選擇一個任意的四個每次建立連接。一個合理的方法可能是依次使用每個端點進行來自客戶端的連續交互(從隨機選擇的一個開始,以確保在客戶端可以重新啓動時對單個端點沒有大的偏見)。

或者,您可以實現一個端點,該端點返回首選連接,客戶端將從該端點進行後續調用。然後,實現可以分配客戶端循環方式,或者參考任何給定時間由每個端點報告的負載。

在這兩種方法中,前者到目前爲止是更簡單的,並且應該在整個端點上給出合理均勻的分佈。後者將允許添加額外的端點而不需要更新客戶端。

+0

第二種方法的潛在的更有用的變化是客戶端可以檢索可能的端點列表,可能按優先順序排列,客戶端可以從中選擇。這將允許客戶端通過使用另一個端點進行重試來對一個端點的故障做出明智的反應。客戶端可以間隔刷新列表(可能由列表中的TTL字段指導)。 – itsbruce 2013-06-11 12:05:17