Java 在客户端使用Httpurlconnection的负载平衡Web服务器

Java 在客户端使用Httpurlconnection的负载平衡Web服务器,java,load-balancing,Java,Load Balancing,我的应用程序需要连接到web服务以获取xml数据。我有四个web服务端点 在web服务之间实现负载平衡的最佳方法是什么 我知道最好的方法是使用硬件/软件负载平衡器,但我必须在客户端这样做 我已经使用HttpURLConnection开发了一个客户端,它在任何一个端点上都可以正常工作 我计划对URL使用hashmap,然后逐个调用 问候,, imran如果没有一个中心点来协调服务端点之间的连接分布,那么每次建立连接时,您只能从四个端点中任意选择一个。一种合理的方法可能是依次使用每个端点进行客户端的

我的应用程序需要连接到web服务以获取xml数据。我有四个web服务端点

在web服务之间实现负载平衡的最佳方法是什么

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

我已经使用HttpURLConnection开发了一个客户端,它在任何一个端点上都可以正常工作

我计划对URL使用hashmap,然后逐个调用

问候,,
imran

如果没有一个中心点来协调服务端点之间的连接分布,那么每次建立连接时,您只能从四个端点中任意选择一个。一种合理的方法可能是依次使用每个端点进行客户端的连续交互(从随机选择的端点开始,以确保在客户端可能重新启动时不会对单个端点产生严重偏差)

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


在这两种方法中,前者是最简单的,并且应该在端点之间提供合理的均匀分布。后者允许添加额外的端点,而无需更新客户端。

第二种方法可能更有用的变体是,客户端检索可用端点列表,可能按首选项排序,客户端可以从中进行选择。这将允许客户端通过重试使用另一个端点,对一个端点的故障做出明智的反应。客户端可以每隔一段时间刷新列表(可能由列表中的TTL字段引导)。