我的应用程序需要连接到 Web 服务才能获取 xml 数据。我有四个 Web 服务端点。
Web 服务之间负载平衡的最佳方式是什么?
我知道最好的方法是使用硬件/软件负载均衡器,但我必须在客户端执行。
我已经使用 HttpURLConnection 开发了一个客户端,它对于任何一个端点都可以正常工作。
我计划对 URL 使用 hashmap,然后一一调用。
问候, 伊姆兰
最佳答案
如果没有中心点来协调服务端点之间的连接分配,每次建立连接时,您几乎只能选择任意四个端点之一。一种合理的方法可能是依次使用每个端点与客户端进行连续交互(从随机选择一个端点开始,以确保在客户端可能重新启动时不会对单个端点产生严重偏差)。
或者,您可以实现一个返回首选连接的端点,客户端将从该连接进行后续调用。然后,实现可以分配客户端循环方式,或者引用每个端点在任何给定时间报告的负载。
在这两种方法中,前者更为简单,并且应该在端点之间提供相当均匀的分布。后者将允许添加额外的端点,而不需要更新客户端。
关于java - 在客户端使用 Httpurlconnection 负载平衡 Web 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5621833/