我需要以这样一种方式设置我的应用程序,它使我的停机时间接近 0。我的一个数据中心在德克萨斯州,另一个在维加斯。现在,如果我在 TX 被认为是 PR 的服务器出现故障,所有流量都将转移到拉斯维加斯服务器,在我的情况下是 DR(灾难恢复)。
如果我们使用 HAProxy 或 NginX 等软件负载均衡器,使用 Keepalived(检查 DR 站点负载均衡器和 PR 站点负载均衡器之间的心跳),我们将最终设置主动-被动负载均衡以克服故障转移。在这里,我们的应用程序将处于 Active-Active 模式。
上图显示,所有传入流量都将到达负载均衡器的虚拟 IP(主动 PR 负载均衡器和被动 DR 负载均衡器,它们之间启用了心跳)。如果 PR 站点负载均衡器处于活动状态,那么它会将负载路由到 PR 站点 Portal 应用程序实例以及 DR 站点 Portal 实例(因为两个站点都处于活动状态),此时 DR 站点负载均衡器将处于空闲状态并不断监视其性能主动负载均衡器。如果 PR 站点出现故障,则 DR 站点将变为活动状态并自动指向 DR 站点 Portal 应用程序实例。
但我听说,使用 Keepalived 设置主动-被动负载平衡器的问题是,它在 LAN 中工作,但在 WAN 设置中无法工作。在我们的例子中,主动 PR 负载均衡器将在 TX,而被动 DR 负载均衡器将在维加斯。
那么,要通过故障转移设置实现 HA,我该如何使用软件负载平衡器?
domain-name-system nginx high-availability load-balancing haproxy