如何实现高可用性主动 – 主动应用服务器?

我需要设置我的应用程序是这样一个方式,使我接近0宕机。 我的一个数据中心在德克萨斯州,另外一个在拉斯维加斯。 现在,如果我的服务器被认为是公关的TX,那么所有的stream量都将被转移到Vegas服务器上,这就是DR(灾难恢复)。

如果我们使用像HAProxy或NginX这样的软件负载平衡器,使用Keepalived(检查DR站点负载平衡器和PR站点负载平衡器之间的心跳),我们将最终进行主动 – 被动负载平衡设置以克服故障转移。 这里我们的应用程序将处于主动 – 主动模式。

在这里input图像说明

如上图所示,所有stream入的stream量将达到负载均衡器(Active PR负载均衡器和被动DR负载均衡器,它们之间使能的心跳)的虚拟IP。 如果PR站点负载均衡器处于活动状态,则会将负载路由到PR站点门户应用程序实例以及DR站点门户实例(因为两个站点均处于活动状态),此时DR站点负载平衡器将处于空闲状态,并持续监视活动负载平衡器。 如果PR站点发生故障,则DR站点将变为活动状态,并自动指向DR站点Portal应用程序实例。

但是我听说,使用Keepalived设置Active-Passive负载均衡器的问题是,它在局域网中工作,但在WAN设置中无法工作。 在我们的情况下,主动PR负载均衡器将在TX和被动DR负载均衡器将在Vegas。

那么,要实现具有故障转移设置的HA,我该如何使用软件负载平衡器?

你将无法做到这一点。 它在同一个LAN中工作的原因是因为共享的IP在两者之间漂浮。 您需要执行复杂的BPG路由并拥有您的IP空间。

你试图把事情复杂得太多了。 尽可能简单,快速失败,而不用担心停机时间。

你应该做的是使用DNS服务来pipe理stream量。 您拥有来自AWS的route53或dyn.com安装运行状况检查的DNS服务。 所以他们总是通过健康检查来检查这两个网站,以确保它们已经启动。 它发送所有的stream量到主要的。 一旦主服务器运行状况检查失败,它将开始为故障切换站点提供DNS响应。

这不是非常简单的事情,因为您必须保持故障切换站点处于活动状态,直到您可以validation主服务器是否完全与故障切换同步。