防止 HAProxy 从回退切换回主控

gro*_*ser 5 high-availability haproxy

我们有 Redis 主从设置,一旦主失败,我们希望回退到从。但是如果它失败了,它应该永远不会切换回来,即使 master 再次在线。

这可能吗?

小智 5

有一种解决方法可以满足您的需求。只需在rise参数上设置一个非常高的值,以及inter几秒钟的时间,如下例所示:

listen  sql-cluster 0.0.0.0:1433
        balance roundrobin
        server  sql01 192.168.100.109:1433 check backup
        server  sql02 192.168.100.180:1433 check inter 5s fall 3 rise 99999999
Run Code Online (Sandbox Code Playgroud)

在本例中,sql01backup,并且sql02是活动的。如果 master 已关闭,sql01则已启动。对于sql02恢复积极,它必须做99.999.999健康检查,以间隔5秒......这是15年左右!


mik*_*ana 5

使用该stick 选项。来自官方 HAproxy 博客

无故障回复的自动故障转移

下面的配置使 HAProxy 在可用时使用 s1,否则在可用时故障转移到 s2。当发生故障转移时,由于棒表,不会自动处理故障回复:

backend bk_app
 stick-table type ip size 1 nopurge peers LB
 stick on dst
 server s1 10.0.0.1:80 check
 server s2 10.0.0.2:80 check backup
Run Code Online (Sandbox Code Playgroud)