MyCat-集群-keepalived 启动及 haproxy 的高可用测试 | 学习笔记

简介: 快速学习 MyCat-集群-keepalived 启动及 haproxy 的高可用测试

开发者学堂课程【全面讲解开源数据库中间件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 上面同时执行启动语句和运行状态。

image.png

 

二、访问

1.需要访问 haproxy,不能直接访问 mySQL,否则 MyCat 无用。

对于 haproxy 来说,现在有 159 和 160,要想做到 haproxy 的高可用,不能访问直接指令的任何一个 IP,要指定的 ip 是 VIP 即虚拟 IP。

image.png

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数据被正常查询出来。

image.png

 

四、验证

验证访问虚拟 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

image.png

提示丢失连接。

再次执行后会尝试重新连接。

image.png

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 干掉

image.png

2.已经将其杀掉,为什么还存在呢?因为有 check 脚本的存在。

image.png

Interval 2 代表每隔两秒就会执行一次,该脚本就是去检测 haproxy 的状态,

image.png

3.如果 haproxy 被干掉,那么他会自动重启,还需继续判定是否重启成功,如果成功会继续执行,如果重启失败,那么就会将 keepalived 关闭。所以杀死 haproxy的时候,都会被重新启动。

如何彻底杀死 haproxy,只需要将配置文件名称改变就可以。

image.png

4.修改配置文件路径名之后就能够成功干掉 haproxy,因为 haproxy 文件想要启动成功需要找到原配置文件,现在找不到,则启动失败。

5.此处做了判断,如果启动不成功,那么会将 keepalived 停止掉。

可以通过 service keepalived status 查看 keepalived 的状态 显示 dead 已经干掉。

Keepalived 一旦挂掉,那么备用节点生效,就会和虚拟 IP 绑定。

通过 arp 查看虚拟 IP 现在和 160 备用节点绑定成功。

以上是 keepalived 的安装配置,那么当前高可用的集群已经匹配完毕,搭建成功

高可用集群表示,不管哪一个节点挂掉,都不会影响当前集群的运行,要重点理解一下以下这幅图的每一部分的作用是什么。

image.png

相关文章
|
1月前
|
Kubernetes Linux API
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
该博客文章详细介绍了在CentOS 7.6操作系统上使用kubeadm工具部署kubernetes 1.17.2版本的测试集群的过程,包括主机环境准备、安装Docker、配置kubelet、初始化集群、添加节点、部署网络插件以及配置k8s node节点管理api server服务器。
62 0
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
|
2月前
|
分布式计算 大数据 Hadoop
最快方式搭建docker大数据 测试集群
【8月更文挑战第5天】快速搭建Docker大数据测试集群可采用预构建镜像与Compose文件、利用云服务如AWS的ECS、自动化工具如Ansible或参考在线教程。只需简单配置如内存分配及路径,运行`docker-compose up`即可启动含NameNode、DataNode等组件的Hadoop集群。根据需求与资源选择合适方法。
|
4月前
|
分布式计算 Shell Linux
Spark-集群安装、部署、启动、测试(1.6.3)稳定版
Spark-集群安装、部署、启动、测试(1.6.3)稳定版
52 0
|
5月前
|
分布式计算 资源调度 Hadoop
Hadoop集群基本测试
Hadoop集群基本测试
60 0
|
5月前
|
NoSQL 测试技术 Redis
Redis【性能 02】Redis-5.0.14伪集群和Docker集群搭建及延迟和性能测试(均无法提升性能)
Redis【性能 02】Redis-5.0.14伪集群和Docker集群搭建及延迟和性能测试(均无法提升性能)
205 0
|
5月前
|
分布式计算 Hadoop 数据安全/隐私保护
HDFS--HA部署安装:修改配置文件 测试集群工作状态的一些指令
HDFS--HA部署安装:修改配置文件 测试集群工作状态的一些指令
65 0
|
5月前
|
Kubernetes Cloud Native 应用服务中间件
云原生|kubernetes|k8s集群测试时的一些基本操作
云原生|kubernetes|k8s集群测试时的一些基本操作
125 0
|
21天前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
98 7
Jmeter实现WebSocket协议的接口测试方法
|
21天前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
93 3
快速上手|HTTP 接口功能自动化测试
|
21天前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
30 5
下一篇
无影云桌面