本节介绍pxc集群上层的负载均衡器haproxy的搭建流程
同样是docker部署
上上篇帖子介绍了haproxy的镜像拉取步骤:天翼云开发者社区 - 天翼云 (ctyun.cn)
还是以
192.168.1.11
192.168.1.12
192.168.1.13
三台机器为例
在三台机器均执行:
1、mkdir -p /data/haproxy/
2、编辑 vi /data/haproxy/haproxy.cfg 文件,输入以下配置
global
log 127.0.0.1 local3 info #在本机记录日志
maxconn 30000 #每个进程可用的最大连接数
#chroot /usr/local/etc/haproxy #haproxy 安装目录
#uid 99 #运行haproxy的用户uid(cat /etc/passwd 查看,这里是nobody的uid)
#gid 99 #运行haproxy的用户组id(cat /etc/passwd 查看,这里是nobody组id)
daemon #以后台守护进程运行
defaults
log global
mode http #运行模式 tcp、 http、 health
retries 3 #三次连接失败,则判断服务不可用
option redispatch #如果后端有服务器宕机,强制切换到正常服务器
stats uri /haproxy #统计页面 URL 路径
stats refresh 30s #统计页面自动刷新时间
stats realm haproxy-status #统计页面输入密码框提示信息
stats auth admin:dxInCtFianKtL]36 #统计页面用户名和密码
stats hide-version #隐藏统计页面上 HAProxy 版本信息
maxconn 30000 #每个进程可用的最大连接数
timeout connect 3600000 #连接超时
timeout client 3600000 #客户端超时
timeout server 3600000 #服务器端超时
listen proxy-mysql
bind 0.0.0.0:3306
mode tcp
balance roundrobin
option tcplog
option mysql-check user haproxy
server MYSQL_1 192.168.1.11:33060 check weight 1 maxconn 10000
server MYSQL_2 192.168.1.12:33060 check weight 1 maxconn 10000
server MYSQL_3 192.168.1.13:33060 check weight 1 maxconn 10000
option tcpka
注:该配置文件设置了haproxy连接数最多可以有40960个,mysql连接每个可以有10000个,实际上应该是远远够用的。haproxy会将请求分发给三台mysql机器,如果不想分发,可以在 server 后面添加 backup 参数
3、启动容器
docker run -itd --restart=always -p 3306:3306 -e TZ="Asia/Shanghai" -v /data/haproxy/:/usr/local/etc/haproxy --name haproxy --privileged haproxy
4、查看haproxy日志
docker logs -f --tail=200 haproxy
日志不报错则部署haproxy完成,下一节我们介绍keepalived部署。