Haproxy agent-check

时间:2017-03-24 17:08:27

标签: mysql haproxy

我正在按照指南为mysql负载均衡器设置haproxy,并检测从属延迟并相应地改变权重。

https://www.percona.com/blog/2014/12/18/making-haproxy-1-5-replication-lag-aware-in-mysql/#comment-10967915

我设法设置PHP文件(作为服务运行)并且它很好地监听定义的端口(3307)。 Telnet到端口3307是成功的,它返回正确的 seconds_behind_master 值。

现在是Haproxy部分:

配置Haproxy并重新加载后,Haproxy不会对端口3307进行任何代理检查。 我关闭了slave以使seconds_behind_master = NULL ,检查haproxy web界面,没有任何改变。从服务器仍在运行。

任何人都可以指出我正确的方向吗?

尝试使用haproxy 1.5.19(从以前的版本升级)和1.6.3(全新安装)

更新

Haproxy configuration
    frontend read_only-front
            bind *:3310
            mode tcp
            option tcplog
            log global
    default_backend read_only-back
            backend read_only-back
            mode tcp
            balance leastconn
            server db01 1.1.1.1:3306 weight 100 check agent-check agent-port 6789 inter 1000  rise 1 fall 1 on-marked-down shutdown-sessions
            server db02 2.2.2.2:3306 weight 100 check agent-check agent-port 6789 inter 1000  rise 1 fall 1 on-marked-down shutdown-sessions

当我阻止1个mysql服务器的Slave时,管理到Telnet并“fputs”PHP脚本中的权重。

telnet 127.0.0.1 6789
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
down

然而,在检查统计数据时,它仍显示100。我甚至尝试其他变量,如“上升1%”,仍然无法改变重量。

echo "show stat" | socat stdio /run/haproxy/admin.sock | cut -d ',' -f1,2,18,19
# pxname,svname,status,weight
read_only-front,FRONTEND,OPEN,
read_only-back,db-vu01,UP,100
read_only-back,db-vu02,UP,100
read_only-back,BACKEND,UP,200

0 个答案:

没有答案