接下来解决如何在多个mysql之间负载均衡的问题,并且在某个节点出现故障之后,可以将其踢出,这时候要引入新的服务器组件:HAProxy、keepalived
HAProxy是个七层代理服务,本身是没有状态的,所以可以通过部署多台HAProxy来实现高可用
如何判断哪个HAProxy可用,就要有Keepalived来监控判断了
在node1、node4上安装haproxy:
yum imstall haproxy -y
进行配置:
vi haproxy.cfg,增加下面的配置(node1)
listen admin_status建立一个HAProxy的管理监听,用来监控HAProxy的运行状况的(node1)
bind绑到一个Keepalived的虚拟ip上
stats uri指定监控的url
stats auth指定帐号密码
listen allmycat_service配置对后端mycat的监控服务了(node1)
bind绑到一个虚拟ip(也就是当服务启动后,要通过8096端口来访问后端的mycat服务,今后应用程序也要通过8096来访问数据库)
mode tcp访问模式tcp
option tcplog选择日志格式
option httpchk设置http格式
balance roudrobin设置负载均衡算法,roudrobin是个轮询算法,会通过轮询的方式对后端mycat进行访问
server对mycat的配置,check port设置通过哪个端口来对服务器进行检测,inter 5s间隔5秒执行一次,rise 2 fall 3失败之后重复检测
listen allmycat_admin对mycat的管理端口进行监控(node1)
和listen allmycat_service配置不一样的是对端口进行区分
在上面的配置中使用到了48700端口来对后端mycat服务进行监控,这个时候我们需要安装另一个服务,来启动这个48700端口
在node1、node4中安装xinted(一个网络守护服务,通过它来简单实现一个网络服务,通过这个服务达到一个启动端口的目的)
安装好后重启服务:
查看是否启动成功:
node1上的eth0上绑定一个虚拟ip,之后这个虚拟ip(vip)会通过keepalived来管理:
接下来启动HAProxy(node1):
接下来用同样的方法配置node4,直接把node1的配置文件拷过来:
建立mycatchk文件
从node1把内容拷贝过来:
同样要增加mycat_status文件,同样从node1拷贝过来即可:
并给予执行权限:
同样执行脚本(该脚本用来对当前节点的mycat进行检测的):
还要配置/etc/services:
增加mycatchk:
重启xinetd:
接下来启动HAProxy:
但报错了!它不能绑定虚拟ip,因为现在是在node1上,节点4上不存在该ip,所以不绑定192.168.10:48800了,而绑定服务器上所有ip:
这时候可以启动成功了:
原文地址:https://blog.51cto.com/5660061/2392583
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。