我有一个与HaProxy MariaDB集群。 由于繁重的工作cronjobs,我需要在07.00-07.10之间每天将客户端redirect到其他机器。 例如我有3服务器,ips是192.168.1.2,192.168.1.3,192.168.1.4。 在07.00-07.10之间,我的192.168.1.1应用服务器不应该使用192.168.1.2。 我该怎么做?
我认为,最简单的方法就是使用haproxy-agent。 例:
HAProxy的截面:
listen mysql bind *:3306 mode tcp option tcplog balance leastconn default-server port 3306 agent-check agent-port 6789 weight 100 inter 1000 on-marked-down shutdown-sessions server server1 192.168.1.2 check server server2 192.168.1.3 check server server3 192.168.1.4 check
mysql-hosts上的/etc/xinet.d/haproxy-agent:
service haproxy-agent { disable = no flags = REUSE log_on_failure += USERID port = 6789 server = /usr/local/bin/haproxy-agent socket_type = stream type = UNLISTED user = nobody wait = no }
在/ usr / local / bin目录/ HAProxy的代理:
#!/bin/bash RES="up 100%" TIME=$(date "+%H%M" | sed 's/^0\+//') [[ "${TIME}" -ge 700 && "${TIME}" -le 710 ]] && RES="down" echo "${RES}"
代理的代码当然应该更聪明一些,不要与closuresRDBMS主机重叠。 顺便说一句,代理的答案是可选的haproxy,所以如果它不响应 – 好吧,haproxy只是忽略了这个事实。