2017-04-03 24 views
0

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

该应用程序可以随时调用任何服务实例,但有时可能会遇到困难之一(由于网络故障或实例问题)获取响应。

什么是推荐的方式使应用程序自动停止使用有问题的实例?

如何重新使用实例?

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

+1

通常情况下,您将拥有负载均衡器服务器,该服务器将请求引导至两个实例。客户端应用程序应连接到负载平衡器URI,并且不应该知道您的两个实例。如果其中一个实例失败,则负载均衡器会将所有流量导向剩余的实例,直到失败的实例恢复。 – Dijkgraaf

回答

0

使用负载平衡器。

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

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

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

相关问题