图示
准备工作
1. 准备四个有安装过mysql的服务器
2. 四个服务器的mysql配置好主从服务
3.在其中两个里面安装配置好MyCat
一. 安装haproxy
1. 安装依赖
yum -y install epel-release
2. 重新配置镜像
⚠️如果上方依赖直接下载完成了则跳过这一步
如果上方安装依赖出现问题安装不上去则需要更新yum源重新配置镜像,挨个执行下方命令之后再执行上面⬆️安装依赖的命令
1.
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2.
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
3.
yum clean all
4.
yum makecache
3. 安装haproxy
yum -y install haproxy
4. 修改配置文件haproxy
位置
/etc/haproxy
打开配置文件将里面的内容全部删除,将下方配置复制进去进行修改
global log 127.0.0.1 local0 maxconn 4096 # 置全局的最大并发连接数为4096 chroot /var/lib/haproxy # 使运行中的haproxy进程被限制在/var/lib/haproxy目录下,以增强安全性。 pidfile /var/run/haproxy.pid uid 99 gid 99 # 设置HAProxy进程运行时的用户ID和组ID daemon # 使haproxy以守护进程模式运行于后台。 defaults log global mode tcp # 指定默认的模式为tcp option abortonclose option redispatch retries 3 # 重试3次 maxconn 2000 #设置每个frontend或backend的最大并发连接数为2000 timeout connect 5000 #设置建立连接超时时间为5000 timeout client 50000 #设置客户端超时时间也为5000 timeout server 50000 #置后端服务器超时时间同样为5000 listen proxy_status bind :48066 # 监听的端口号是48066 mode tcp balance roundrobin # 负载均衡的测策略是 轮询 server mycat_1 192.168.5.69:8066 check inter 10s # 每隔10s检测一次 server mycat_2 192.168.5.71:8066 check inter 10s frontend admin_stats bind :7777 mode http stats enable option httplog maxconn 10 stats refresh 30s stats uri /admin # 访问的路径 stats auth admin:admin # 访问的用户名和密码的信息 stats hide-version # 隐藏版本号 stats admin if TRUE # 必须是admin登录
5. 启动haproxy
⚠️⚠️防火墙必须全部关闭
启动haproxy之前需要先启动两个MyCat
启动haproxy
systemctl start haproxy
6. 访问
登录之后访问出来是是这样haproxy就下载配置完成了
二. 配置负载均衡
根据上方图示以及准备工作已知现在已经有两个安装配置完Mycate了
下面根据一在第二个服务器中也安装配置好haproxy 过程与上方一样
过程与 略....
1. 下载keepalived
因为我这边是持续在虚拟机中添加内容,所以在前面 Keepalived高可用配置服务器集群-CSDN博客
这一张中我已经下载配置过keepalived 这里就不再叙述,如果没有下载过的请跳转到上方博客进行下载配置之后再过来
2. 配置keepalived
根据上面已经下载并且进行了简单的配置了,下面会在上方配置下继续进行添加配置文件
cd /etc/keepalived/
打开keepalived.conf配置文件,将下方内容复制到最下方
# 设置虚拟服务器,需要指定虚拟IP地址和服务端口,IP与端口之间用空格隔开 virtual_server 192.168.5.100 48066 { delay_loop 6 # 设置运行情况检查时间,单位是秒 lb_algo rr # 设置负载调度算法,这里设置为rr,即轮询算法 lb_kind NAT # 设置LVS实现负载均衡的机制,有NAT、TUN、DR三个模式可选 persistence_timeout 50 #会话保持时间,单位是秒。这个选项对动态网页是非常有用的,为集群系统中的session共享提供了一个很好的解决方案。 #有了这个会话保持功能,用户的请求会被一直分发到某个服务节点,直到超过这个会话的保持时间。 #需要注意的是,这个会话保持时间是最大无响应超时时间,也就是说,用户在操作动态页面时,如果50秒内没有执行任何操作, #那么接下来的操作会被分发到另外的节点,但是如果用户一直在操作动态页面,则不受50秒的时间限制 protocol TCP # 指定转发协议类型,有TCP和UDP两种 real_server 192.168.5.71 48066 { #HA地址(备机r) weight 1 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } real_server 192.168.5.69 48066 { #HA地址(备机r) weight 1 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } }
根据下方图示将需要修改的ip改为自己的
这里配置完之后就配置完成了
第二个服务器的keepalived配置文件修改方式与与第一个相同,过程 略..
配置完成之后记得保存配置文件
3. 启动 验证
根据下方命令启动两个服务器的启动项目
1.启动 MyCat 先找到mycat 执行下方命令启动
./mycat start
2.启动 haproxy
systemctl start haproxy
3.启动 keepalived
systemctl start keepalived
4.启动mysql
systemctl start mysqld
查看时候成功启动
启动完成之后分别访问两个haproxy
验证负载均衡是否成功
通过虚拟ip查询数据 命令
#mysql 账号 密码 -h 配置的虚拟ip -P 设置的端口号
mysql -uroot -proot -h 192.168.174.100 -P 48066
都连上之后进行测试
关闭任意一台服务器的haproxy我这里关闭的是69服务器的
sysetmctl stop haproxy
这个时候网页已经无法进行访问
这个时候继续执行上方命令
如果没有配置负载均衡的话这个时候在我们关闭haproxy之后就无法正常访问了,这个时候因为配置了负载均衡,所以在69服务器关闭之后71服务器会直接顶上,在关闭一台服务器的haproxy之后还能在这个服务器正常访问就代表配置成功了