haproxy实现mysql slave负载均衡

时间:2021-02-25 13:58:56

简单画一个图:

haproxy实现mysql slave负载均衡

一、服务器规划
192.168.116.132 (master)  -->写操作
192.168.116.129 (slave1)  -->读操作
192.168.116.131 (slave2)  -->读操作
192.168.116.130 (haproxy) -->代理
mysql主从复制配置略过。
 
二、安装配置haproxy
安装haproxy
tar zxf haproxy-1.4.21.tar.gz
cd haproxy-1.4.21
make TARGET=linux26 PREFIX=/app/haproxy
make install PREFIX=/app/haproxy
mkdir /app/haproxy/{conf,log}

配置haproxy

vi /app/haproxy/conf/haproxy.cfg #添加如下内容
global
log 127.0.0.1 local3 info #日志相关
log 127.0.0.1 local3 notice
maxconn 10240
chroot /app/haproxy
uid root
gid root
daemon
pidfile /app/haproxy/log/haproxy.pid defaults
#log global
mode http
#option httplog
#option dontlognull
option redispatch
retries 3
option redispatch
maxconn 4096
contimeout 50000
clitimeout 50000
srvtimeout 50000 listen mysql-proxy
bind 0.0.0.0:33307 #代理端口
mode tcp #模式 TCP
option mysql-check user haproxy #mysql健康检查,haproxy用户无任何权限,并且无密码
balance roundrobin #调度算法
server mysql1-129 192.168.116.129:3306 weight 1 check inter 1s rise 2 fall 2 #健康检查加上check
server mysql2-131 192.168.116.131:3306 weight 1 check inter 1s rise 2 fall 2
listen stats #监控
mode http
bind 0.0.0.0:19999
stats enable
stats uri /dbs
stats realm Global\ statistics
stats auth admin:admin

启动haproxy

/app/haproxy/sbin/haproxy -f /app/haproxy/conf/haproxy.cfg
打开浏览器查看:
用户名及密码:admin/admin
haproxy实现mysql slave负载均衡