在这两台主主备复制的mysql的基础上做的HAproxy读写分离
docker pull haproxy
#偷懒的做法,好一点的做法是写脚本。我目前用的个mysql空密码登录的账号用于检测
docker run -d -it --name haproxy \
-v /docker/haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro \
-v /docker/haproxy/logs/:/var/log/ \
-p 20006:23306 -p 30006:33306 -p 6888:7888 \
--restart=always \
haproxy
######## mysql负载均衡写配置 ###############
listen haproxy_23306_write_single
bind 0.0.0.0:23306
mode tcp
# 负载均衡算法
# static-rr 权重, leastconn 最少连接, source 请求IP, 轮询 roundrobin
balance static-rr
# 日志格式
option tcplog
# 在 mysql 创建一个没有权限的haproxy用户,密码为空。 haproxy用户
# create user 'haproxynopassword'; FLUSH PRIVILEGES;
option mysql-check user haproxynopassword
# 这里是容器中的IP地址,由于配置的是轮询roundrobin,weight 权重其实没有生效
server MYSQL_66 192.168.39.66:13306 check weight 1 maxconn 2000
server MYSQL_67 192.168.39.67:13306 check weight 1 maxconn 2000
# 使用keepalive检测死链
# option tcpka
#########################################
######## mysql负载均衡读配置 ###############
listen haproxy_33306_read_multi
bind 0.0.0.0:33306
mode tcp
# 负载均衡算法
# static-rr 权重, leastconn 最少连接, source 请求IP, 轮询 roundrobin
balance static-rr
# 日志格式
option tcplog
# 在 mysql 创建一个没有权限的haproxy用户,密码为空。 haproxy用户
# create user 'haproxynopassword'; FLUSH PRIVILEGES;
option mysql-check user haproxynopassword
# 这里是容器中的IP地址,由于配置的是轮询roundrobin,weight 权重其实没有生效
server MYSQL_69 192.168.39.69:13306 check weight 5 maxconn 2000
server MYSQL_66 192.168.39.66:13306 check weight 1 maxconn 2000 backup
server MYSQL_67 192.168.39.67:13306 check weight 1 maxconn 2000 backup
# 使用keepalive检测死链
# option tcpka
#########################################
正常在线的主机
停掉67后
手机扫一扫
移动阅读更方便
你可能感兴趣的文章