vzdsa 发表于 2015-8-13 09:53:45

Xtradb+Haproxy高可用数据库集群(二)haproxy负载均衡篇

Xtradb集群部署完成后,3台机器都能同时读写,此时需要在前端搭建haproxy来进行负载均衡。
官网haproxy配置参考地址:

https://www.percona.com/doc/percona-xtradb-cluster/5.6/howtos/virt_sandbox.html

Haproxy服务器配置
拿一台机器用作haproxy,此处是192.168.6.219。
安装haproxy
yum install haproxy -y
配置文件:
# cat /etc/haproxy/haproxy.cfggloballog 127.0.0.1 local0log 127.0.0.1 local1 noticemaxconn 4096chroot /usr/share/haproxyuser haproxygroup haproxydaemon
defaultslog globalmode httpoption tcplogoption dontlognullretries 3option redispatchmaxconn 2000contimeout 5000clitimeout 50000srvtimeout 50000
frontend pxc-frontbind *:3307mode tcpdefault_backend pxc-back
frontend stats-frontbind *:8080mode httpdefault_backend stats-back
frontend pxc-onenode-frontbind *:3308mode tcpdefault_backend pxc-onenode-back
backend pxc-backmode tcpbalance leastconnoption httpchkserver c1 192.168.70.71:3306 check port 9200 inter 12000 rise 3fall 3server c2 192.168.70.72:3306 check port 9200 inter 12000 rise 3fall 3server c3 192.168.70.73:3306 check port 9200 inter 12000 rise 3fall 3
backend stats-backmode httpbalance roundrobinstats uri /haproxy/statsstats auth pxcstats:secret
backend pxc-onenode-backmode tcpbalance leastconnoption httpchkserver c1 192.168.70.71:3306 check port 9200 inter 12000 rise 3fall 3server c2 192.168.70.72:3306 check port 9200 inter 12000 rise 3fall 3server c3 192.168.70.73:3306 check port 9200 inter 12000 rise 3fall 3
启动haproxy
/etc/init.d/haproxy start
web访问

上面配置的8080端口及/haproxy/stats
访问url:192.168.6.219:8080/haproxy/stats
用户名密码是上面配置的pxcstats:secret


xtradb服务器上xinetd配置在所有xtradb服务器上,都要配置xinetd打开9200端口来进行监控。
yum instalxinetd
配置mysqlchk监控
# cat /etc/xinetd.d/mysqlchk # default: on # description: mysqlchk service mysqlchk { # this is a config for xinetd, place it in /etc/xinetd.d/      disable = no       flags         = REUSE       socket_type   = stream       type            = UNLISTED      port            = 9200       wait            = no       user            = nobody       server          = /usr/bin/clustercheck       log_on_failure+= USERID       only_from       = 0.0.0.0/0      #      # Passingarguments to clustercheck      # <user><pass> <available_when_donor=0|1> <log_file><available_when_readonly=0|1> <defaults_extra_file>"      # Recommended:server_args   = user pass 1/var/log/log-file 0 /etc/my.cnf.local"      # Compatibility:server_args = user pass 1 /var/log/log-file 1 /etc/my.cnf.local"      # 55-to-56upgrade: server_args = user pass 1 /var/log/log-file 0 /etc/my.cnf.extra"      #      # recommended toput the IPs that need       # to connectexclusively (security purposes)       per_source      = UNLIMITED }默认安装xtradb server后会安装此配置.

重启xinetd服务
/etc/init.d/xinetd restart
haproxy每一段时间检测xtradb服务器上的9200端口,当clustercheck命令执行的结果不是200时,haproxy的检测将会把该机器从负载均衡中摘除,从而达到自动failover的效果。


页: [1]
查看完整版本: Xtradb+Haproxy高可用数据库集群(二)haproxy负载均衡篇