MySQL数据库集群之PXC方案---Haproxy+PXC集群

it2022-05-05  156

在之前的博客中我们已经安装好了三个节点的PXC集群。在这一篇博客中讲解Haproxy与PXC集群的搭配使用。

1. Haproxy简介

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监控报告。

1.1 Haproxy负载均衡算法

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请求

2. 安装Haproxy

2.1 关闭SELINUX

把selinux的值改为disabled

vi /etc/selinux/config

修改完毕reboot重启虚拟机

reboot

2.2 开放端口

端口作用3306TCP/IP转发4001监控界面控制 firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --zone=public --add-port=4001/tcp --permanent firewall-cmd --reload

2.3 安装Haproxy

yum install -y haproxy

2.4 Haproxy配置

2.4.1 Haproxy配置文件介绍

Haproxy的配置文件在/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

2.4.2 配置Haproxy

vi /etc/haproxy/haproxy.cfg

贴上最终配置文件内容

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

2.5 Haproxy启动

service haproxy start #启动 service haproxy stop #关闭 service haproxy restart #重启

2.6 查看Haproxy管理界面

用浏览器打开 ip:4001/dbs ,输入上边配置文件中配置的用户名密码。出现以下页面说明配置成功

2.7 使用navicat连接Haproxy

因为我们使用Haproxy做数据库的负载均衡前置机。我们试验是否通过navicat能否连上Haproxy操作数据库。 我们在Haproxy创建数据库hadb 刷新haproxy负载均衡的数据库节点。 这三个节点因为PXC的同步机制都创建了hadb数据库

新建表和新建数据就不再演示,请自行测试。至此haproxy+pxc集群已搭建完成。


最新回复(0)