我可以用javascript负载平衡



我有4台服务器,每台服务器上都有相同的应用程序。我在网络上的负载平衡器是一个简单的循环。问题是,如果其中一个应用程序关闭,负载均衡器仍然试图连接到它,然后返回一个http错误给我的用户。

是否有一种方法在javascript,我可以调用一个服务器,如果我得到一个错误,然后调用下一个服务器?

谢谢

真正的答案必须是修复或替换负载均衡器,因为路由调用到死服务器的负载均衡器是没有用的…: -)

但是回答你实际问的问题:

简短的回答可能是"不",但请继续阅读。

长一点的答案是,这可能取决于你对"call"的定义。如果您的意思是通过ajax调用服务器,那么要做到这一点,您必须设置服务器以支持跨域资源共享(并要求您的用户使用与之兼容的浏览器),否则您将被SOP阻止。但如果你这样做,基本上,如果你得到一个错误的响应ajax调用负载均衡的地址,你会使用一个特定的服务器地址再次尝试。

你可以做同样的事情加载图像(响应error事件,再尝试一个特定的地址)。

但是,如果你的用户只是跟随一个链接到你的负载平衡地址或其他几个东西,这将无助于你,这让我们回到:这真的需要在负载平衡级别修复

根据负载均衡器的不同,在某个主机不可用的情况下,它应该具有故障转移到其他主机的能力。通常,您将设置一个状态页(如果是基于web的)或一个端口来监视,如果它不可用,负载平衡器将自动从池中删除主机,并将所有会话传输到其他主机(再次,这是假设基于web的应用程序)。

下一层将在服务器层进行尝试。如果这是一个基于web的应用程序,大多数web服务器都带有一些心跳功能,您可以使用这些功能将故障转移到其他web服务器。

如果其他选项不可用,客户端(除非你谈论的是服务器编译的JS)将是你最后的追索权。但是,在进一步帮助您之前,我们需要更多关于您的申请的信息。

最新更新