开发者学堂课程【全面讲解开源数据库中间件MyCat使用及原理(三):MyCat-集群-keepalived 启动及 haproxy 的高可用测试 】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/757/detail/13292
MyCat-集群-keepalived 启动及 haproxy 的高可用测试
内容介绍
一、启动
二、访问
三、测试
四、测试 haproxy
159 和 160 的 keepalived 已经安装配置完毕,接下来进行 keepalived 的启动以及测试。
一、启动:
1.启动执行:service keepalived start
2.查看状态执行:service keepalived status 状态为 running 则为执行的。
在 159 和 160 上面同时执行启动语句和运行状态。
二、访问
1.需要访问 haproxy,不能直接访问 mySQL,否则 MyCat 无用。
对于 haproxy 来说,现在有 159 和 160,要想做到 haproxy 的高可用,不能访问直接指令的任何一个 IP,要指定的 ip 是 VIP 即虚拟 IP。
2.刚刚配置出的虚拟 IP 是 192.200,客户端访问的都是虚拟 IP,只要虚拟 IP 一启动,就会和某一个服务器的网卡进行绑定,会将客户端的请求发送到 159 服务器上面。
3.通过 haproxy 中的负载均衡策略,将请求转发给其中的一个 MyCat,由 MyCat中的读写分离的原则,将请求转发给 MySQL。
三、测试
1.输入 mysql -h 192.168.192.200 -p 48066 -u root -p 123456
最终访问 MyCat
-h 192.168.192.200
虚拟 IP
48066 安装 haproxy 所监听的端口是 48066
-u uesr root -p password 123456
输入指令 use ITCAST
切换逻辑库 执行 select*from user
数据被正常查询出来。
四、验证
验证访问虚拟 IP 192.200 的时候,下方连接的到底是 159 还是 160 服务器。
1.输入指令 ping 192.157/192.159/192.160/192.200
四者都能正常运行 通过 ping 指令只能知道当前 IP 和其余 IP 是否正常联通。
2.借助 arp 可以查看指定 IP 地址的 mark 地址。
输入arp -a192.168.192.159
其 mark 地址为 b0
输入arp -a192.168.192.160
其 mark 地址为 03
输入arp -a192.168.192.200
其 mark 地址为 b0
会发现 200 的 mark 地址与 159mark 地址一致 那则说明现在的虚拟 IP 是与 159绑定的 则说明访问虚拟 IP 时,访问的时 159 服务器。
3.将 159 服务挂掉,即将 keepalived 停掉,执行 service keepalived stop
查看状态 service keepalived statue
为停止。 在 159 服务器上执行select* from user
提示丢失连接。
再次执行后会尝试重新连接。
4.当 159 挂掉后,备用节点 keepalived 监听不到 159 发送过来的信息,则认为主节点挂掉,主节点一旦挂掉,就会将虚拟 IP 和当前 IP 地址绑定。这时在使用 arp进行检测:
输入 arp -a192.168.192.200 其 mark 地址为 e3。
与 192.160 地址相同。
5.如果这时将159重新启动起来:service keepalived start 查看状态 service keepalived statue 为 running
再次使用 arp 进行检测:
输入arp -a192.168.192.200 其 mark 地址为 b0 又切换为 159 主机。
以上测试则说明,备节点永远是备用节点,只有当主节点挂掉的时候备用节点才生效,主节点再次启动时,主节点又升级为主节点,依然和虚拟 IP 进行绑定。
五、测试 Haproxy
1.如果 keepalived 没有挂掉,但是 haproxy 挂掉会怎样?
在 159 服务上 ps-ef|grep haproxy 通过 kill -9 592591
当前虚拟 IP 与 159 服务进行绑定。现在要将 159 上面的 haproxy 干掉
2.已经将其杀掉,为什么还存在呢?因为有 check 脚本的存在。
Interval 2 代表每隔两秒就会执行一次,该脚本就是去检测 haproxy 的状态,
3.如果 haproxy 被干掉,那么他会自动重启,还需继续判定是否重启成功,如果成功会继续执行,如果重启失败,那么就会将 keepalived 关闭。所以杀死 haproxy的时候,都会被重新启动。
如何彻底杀死 haproxy,只需要将配置文件名称改变就可以。
4.修改配置文件路径名之后就能够成功干掉 haproxy,因为 haproxy 文件想要启动成功需要找到原配置文件,现在找不到,则启动失败。
5.此处做了判断,如果启动不成功,那么会将 keepalived 停止掉。
可以通过 service keepalived status 查看 keepalived 的状态 显示 dead 已经干掉。
Keepalived 一旦挂掉,那么备用节点生效,就会和虚拟 IP 绑定。
通过 arp 查看虚拟 IP 现在和 160 备用节点绑定成功。
以上是 keepalived 的安装配置,那么当前高可用的集群已经匹配完毕,搭建成功
高可用集群表示,不管哪一个节点挂掉,都不会影响当前集群的运行,要重点理解一下以下这幅图的每一部分的作用是什么。