如何设置HAProxy故障转移?

我明白,要在HAProxy负载均衡设置上获得故障转移,您需要两台运行HAproxy的机器(并将其路由到多个Web服务器实例)。 但在这种情况下,说abcd.com,我们如何将这个stream量分割/路由到2个IP地址而不是一个? DNS通常将域名parsing为单个IP。 我们如何使用免费/便宜的工具/服务来做到这一点?

如果你有太多的负载,你需要在两个haproxy实例之间进行负载均衡,那么DNS循环不是一个坏主意(如果你有这个负载,我会感到惊讶)。 虽然DNS循环不会提供良好的故障转移。

在堆栈溢出中,我们使用heartbeat来提供单个虚拟IP,这个IP一次只能在一个haproxy主机上活动(如果停止,另一个接pipe这个IP)。 您可以使用心跳在每台计算机上都有一个IP,然后在两者之间进行DNS循环。 如果一方失败,那么另一方将拥有这两个IP。

HAProxy在我们的物理服务器上使用大约1-5%的CPU来平衡我们的stream量,它具有单个Intel(R) Xeon(R) CPU E5504 @ 2.00GHz 。 所以HAProxy通常可以轻松处理大量的stream量。

正如凯尔所说, 心跳可以用来使两台haproxy服务器充当故障转移对。 然而,尽pipe许多人确实使用心跳来工作,但haproxy的作者build议keepalived

他概述了haproxy邮件列表的详细信息: http : //www.formilux.org/archives/haproxy/1003/3259.html

简而言之,它是这样的:

  • 心跳是以集群为导向的。 它确保只有一台服务器可以访问资源(即SAN存储)

  • keepalived是面向networking的。 它确保至less有一台服务器有问题的IP。

您可能会在这里find您要查找的内容: http : //blog.haproxy.com/2014/01/17/emulating-activepassing-application-clustering-with-haproxy/