HAProxy使用服务器从DOWN到UP时

Mau*_*ano 7 mysql haproxy

我有一个运行HAProxy的服务器来负载平衡我们的mysql服务器.当我们在很长一段时间内具有较低的平均负载时,某些服务器可能会停机,但是,在将来,如果负载再次变高,那些服务器会自动上升.问题是当一个实例发生故障时,HAProxy永远不会再查看它,所以当实例再次启动时,它会被忽略.要解决此问题,我们会在需要时重启

这是我们的配置文件:

global
    log 127.0.0.1 local0 notice
    user haproxy
    group haproxy

defaults
    log global
    retries 2
    timeout connect 3000
    timeout server 5000
    timeout client 5000

listen mysql-cluster
        bind 0.0.0.0:3306
        mode tcp
        option mysql-check user haproxy_check
        balance leastconn
        server mysql-1 ********:3306 check
        server mysql-2 ********:3306 check
Run Code Online (Sandbox Code Playgroud)

也许如果我将重试从2改为大数,它可以解决我们的问题?

编辑 根据要求,这是我的HAProxy版本:

$ haproxy -v
HA-Proxy version 1.4.24 2013/06/17
Copyright 2000-2013 Willy Tarreau <w@1wt.eu>
Run Code Online (Sandbox Code Playgroud)

谢谢

小智 2

我们的 AWS 基础设施中也有类似的情况:每个实例上都有 HAProxy,用于 RDS 副本访问(我们有 3 个副本,但应用程序只能使用一个主机名)。我们通过使用具有相同名称(例如 db.example.internal)和相同权重(加权 Route53 策略)的多个记录将 HAProxy 替换为 Route53 内部来全局解决此问题。我们还为每个副本创建 Route53 健康检查(TCP 3306 端口检查)。对于我们来说,这个解决方案效果很好,如果我们需要添加/删除 RDS 副本 - 我们需要更改的唯一地方 - Route53 记录和运行状况检查(我们不需要维护每个实例 HAProxy 状态/conf)