处理在多个实例上运行的Web服务的故障

时间:2017-04-03 23:43:58

标签: load-balancing failover

我正构建一个应用程序,该应用程序将调用具有2个相同实例的Web服务,每个实例在不同的服务器上运行,并具有自己的IP。

应用程序可以随时调用任何服务实例,但有时可能很难从其中一个获得响应(因为网络故障或实例有问题)。

建议让应用自动停止使用有问题的实例的方法是什么?

当它再次在线时如何回复使用该实例?

是否有标准库或工具来帮助这种情况?

1 个答案:

答案 0 :(得分:0)

使用负载均衡器。

您的应用必须直接连接到LB而不是Web服务器。 LBs维护它们配置的每个服务器的状态(通过超时或显式http状态调用)。它们会自动禁用已断开连接的服务器的流量,并在实例恢复后启用它。

稍后,您可以根据自己的要求(手动或自动缩放)添加或删除实例,而无需对应用进行任何更改。

HAProxy和Nginx广泛用于互联网规模负载平衡。云提供商还提供此服务,如果您在云上,则可以使用它们(例如AWS具有弹性负载平衡,Google Cloud具有负载平衡)。