2011-04-11 156 views
0

我的应用程序需要连接到Web服务才能获取xml数据。我有四个Web服务端点。在客户端使用Httpurlconnection负载平衡网络服务器

什么是负载平衡的Web服务的最佳方式是什么?

我知道最好的方法是使用硬件/软件负载平衡器,但我必须在客户端做。

我已经开发了一个使用HttpURLConnection的客户端,它对于任何一个终点都可以正常工作。

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

问候, 伊姆兰

回答

1

没有一个中心点来统筹您的服务端点之间的连接的分布,你几乎仅限于选择一个任意的四个每次建立连接。一个合理的方法可能是依次使用每个端点进行来自客户端的连续交互(从随机选择的一个开始,以确保在客户端可以重新启动时对单个端点没有大的偏见)。

或者,您可以实现一个端点,该端点返回首选连接,客户端将从该端点进行后续调用。然后,实现可以分配客户端循环方式,或者参考任何给定时间由每个端点报告的负载。

在这两种方法中,前者到目前为止是更简单的,并且应该在整个端点上给出合理均匀的分布。后者将允许添加额外的端点而不需要更新客户端。

+0

第二种方法的潜在的更有用的变化是客户端可以检索可能的端点列表,可能按优先顺序排列,客户端可以从中选择。这将允许客户端通过使用另一个端点进行重试来对一个端点的故障做出明智的反应。客户端可以间隔刷新列表(可能由列表中的TTL字段指导)。 – itsbruce 2013-06-11 12:05:17