在之前的博客中我们已经安装好了三个节点的PXC集群。在这一篇博客中讲解Haproxy与PXC集群的搭配使用。
HaProxy是一个特别适用于高可用性环境的TCP/HTTP开源的反向代理和负载均衡软件。在七层负载均衡方面的功能很强大(支持cookie track,header rewrite等等),支持双机热备,支持虚拟主机,支持健康检查,同时还提供直观的监控页面,可以清晰的监控服务集群的运行状况。同时支持Linux2.6内核中System Epoll,通过简化系统调用,大幅的提高了网络I/O性能。
Haproxy包括以下一些特征:
根据静态分配的cookie分配HTTP请求分配负载到各个服务器,同时保证服务器通过使用HTTP Cookie实现连接保持;当主服务器宕机时切换到备服务器,允许特殊端口的服务监控;做维护时通过配置可以保证业务的连续性,更加人性化;添加修改删除HTTP Request和Respone头;通过特定表达式Block HTTP请求;根据应用的cookie做连接保持;常有用户验证的详细的HTML监控报告。HaProxy的负载均衡算法现在具体有如下8种: 1、 roundrobin:简单的轮询 2、 static-rr:权重轮询 3、 leastconn:最少连接者优先 4、 source:根据请求源IP,这个跟Nginx的ip_hash机制类似 5、 ri:根据请求的URI 6、 rl_param:表示根据请求的URI参数‘balance url_param’requires an URL parameter name; 7、 hdr(name):根据HTTP请求头来锁定每一次HTTP请求 8、 rdp-cookie(name):根据cookie来锁定并哈希每一次TCP请求
把selinux的值改为disabled
vi /etc/selinux/config修改完毕reboot重启虚拟机
rebootHaproxy的配置文件在/etc/haproxy目录下的haproxy.cfg文件,主要说明一下后台监控界面配置和负载均衡相关配置
后台监控界面配置
listen admin_stats bind 0.0.0.0:4001 #监控界面访问的ip和端口 mode http #访问协议 stats uri /dbs #URI相对地址 stats realm Global\ statistics #统计报告格式 stats auth admin:abc123456 #登录账号信息负载均衡相关配置
listen proxy-mysql bind 0.0.0.0:3306 mode tcp balance roundrobin #负载均衡请求转发的算法 option tcplog #日志格式 server pxc1 192.168.1.166:3306 check port 3306 weight 1 maxconn 2000 server pxc2 192.168.1.173:3306 check port 3306 weight 1 maxconn 2000 server pxc3 192.168.1.174:3306 check port 3306 weight 1 maxconn 2000贴上最终配置文件内容
global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon # turn on stats unix socket stats socket /var/lib/haproxy/stats defaults mode http log global option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 3000 listen admin_stats bind 0.0.0.0:4001 #监控界面访问的ip和端口 mode http #访问协议 stats uri /dbs #URI相对地址 stats realm Global\ statistics #统计报告格式 stats auth admin:abc123456 #登录账号信息 listen proxy-mysql bind 0.0.0.0:3306 mode tcp balance roundrobin option tcplog #日志格式 server pxc1 192.168.1.166:3306 check port 3306 weight 1 maxconn 2000 server pxc2 192.168.1.173:3306 check port 3306 weight 1 maxconn 2000 server pxc3 192.168.1.174:3306 check port 3306 weight 1 maxconn 2000用浏览器打开 ip:4001/dbs ,输入上边配置文件中配置的用户名密码。出现以下页面说明配置成功
因为我们使用Haproxy做数据库的负载均衡前置机。我们试验是否通过navicat能否连上Haproxy操作数据库。 我们在Haproxy创建数据库hadb 刷新haproxy负载均衡的数据库节点。 这三个节点因为PXC的同步机制都创建了hadb数据库
新建表和新建数据就不再演示,请自行测试。至此haproxy+pxc集群已搭建完成。
