将 HAProxy 备份作为另一个 HAProxy 服务器运行并避免周期性问题的最佳方法是什么

将 HAProxy 备份作为另一个 HAProxy 服务器运行并避免周期性问题的最佳方法是什么

我的服务部署有多个地理区域,例如 Region1、Region2 和 Region3。每个区域都有一个故障转移 haproxy 实例。每个 haproxy 都配置了多个后端服务器,这些服务器会将请求传递到其私有 IP。

我使用基于 DNS 的负载平衡解决方案将每个国家的流量引导到速度最快的可用区域。DNS 解决方案具有故障转移功能,但由于 TTL、监控间隔和传播时间,这可能需要一点时间。

如果一个数据中心的后端出现问题,我希望该区域的 HAProxy 将流量定向到其他在线区域(使用“allbackups”选项,并在备份上启用 httpchk)以服务请求,即使延迟增加,直到问题在本地解决或 DNS 故障转移启动。最初这听起来是个好主意,但现在我认为这有时会导致周期性重定向,想知道是否有人对如何实现这样的设置(或更好的替代配置)有建议。

我上面描述的例子:

区域1-haproxy

  • r1b1(私人)
  • r1b2(私人)
  • region2-haproxy(公共)备份
  • region3-haproxy(公共)备份

区域2-haproxy

  • r2b1(私人)
  • r2b2(私人)
  • region1-haproxy(公共)备份
  • region3-haproxy(公共)备份

region3-haproxy

  • r3b1(私人)
  • r3b2(私人)
  • region1-haproxy(公共)备份
  • region2-haproxy(公共)备份

答案1

我正在为基于 AWS 的生产环境寻找类似的东西,我认为使用 heartbeat 对你的情况来说是一个很好的解决方案。我计划在我的两个 HAProxy 服务器之间使用 heartbeat,如果其中一个服务器出现故障,我计划将弹性 IP 分配给现在成为我主服务器的机器。我建议查看 heartbeat,以下是另一个我发现对这种情况有用的链接:

HA代理

相关内容