java - 在客户端使用 Httpurlconnection 负载平衡 Web 服务器

标签 java load-balancing

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

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

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

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

我计划对 URL 使用 hashmap,然后一一调用。

问候, 伊姆兰

最佳答案

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

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

在这两种方法中,前者更为简单,并且应该在端点之间提供相当均匀的分布。后者将允许添加额外的端点,而不需要更新客户端。

关于java - 在客户端使用 Httpurlconnection 负载平衡 Web 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5621833/

相关文章:

java - 我可以获得java程序测试用例的执行跟踪吗?

asp.net - 如何在负载平衡的 Web 场中处理 ASP.NET 应用程序变量

networking - UDP 负载平衡使用自定义平衡方法, session ID 位于 UDP 主体内

ssl - SSL 证书续订时的私钥更改

linux - HAProxy 不支持 SSL

java - 实体间的优化关系

java - 非法访问 : this web application instance has been stopped already. Tomcat 停止运行

c# - 使用负载平衡时如何锁定对象

java - 最简单的使用方法 "BeanUtils alike"替换

java - Spring:根据 View 重定向