MyCat - 集群 - keepalived 作用及流程介绍 | 学习笔记

简介: 快速学习 MyCat - 集群 - keepalived 作用及流程介绍

开发者学堂课程【全面讲解开源数据库中间件MyCat使用及原理(三):MyCat - 集群 - keepalived 作用及流程介绍】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/757/detail/13290


MyCat - 集群 - keepalived 作用及流程介绍

内容介绍:

一、 课程回顾

二、 Keepalived 安装配置

 

一、 课程回顾

在学习 Keepalived 安装配置之前首先要了解 Keepalived 的原理和运行机制,在讲解 Keepalived 的原理之前,先回顾之前高可用集群的架构,如下:

下图中已经通过 HAProxy 完成了 MyCat 的高可用集群的搭建,通过 HAProxy 可以得到 MyCat 的负载均衡,

如下图中安装了两台 HAProxy ,虽然是两台 HAProxy ,但是它们是单节点(也就是 192.159 这台服务器停止其工作,192.160 这台服务器不会停止工作),

要做到是去搭建 HAProxy 的高可用,HAProxy  的搭建需要借助于 Keepalived ,通过 Keepalived 虚拟出需要的 IP ,前端的应用程序去访问时是通过此 VIP 来访问,如果没有 Keepalived 的虚拟 VIP ,客户端不能确定是连接 159 还是 160,如果连接的是 159,意味着请求的一直是 159 服务器,即使 159 停止工作,也不能自动切换到 160 上,只能手动地在客户端应用程序上修改,如此会造成许多不便,因此会考虑 HAProxy 的高可用如何通过 Keepalived 来实现。

image.png

 

二、 Keepalived 安装配置

安装配置

image.png

上图有两台服务器,分别是 159 和 160,159 和 160 两台服务器上都会安装 HAProxy 和 Keepalived ,两台服务器上的 Keepalived 都会虚拟出同一个 VIP(192.200),这两台 Keepalived 的关系实际上是一主一备,假如第一个 Keepalived 是主,那么他们虚拟出的 VIP 将会与主节点进行绑定,换而言之,192.200 会和 192.159 进行绑定,访问 192.200 就相当于访问 192.159,那么,我们前段的应用程序在去访问 MyCat 集群的时候实际上是直接访问的 VIP ,访问192.200 就是访问 192.159,也就相当于访问了第一台 HAProxy ,而这台 HAProxy 会将请求继续路由,路由到后端的 MyCat ,然后进行 MyCat 的负载均衡。

假如第一台服务器停止工作,此时就要考虑到 Keepalived 的心跳机制,Keepalived 这两台服务器会维护一个心跳机制(主节点每隔一段时间都会往从节点或备用节点发送一个心跳包,当备用节点没有接收到这个心跳包,或相隔了几秒未接收到,此时就会开始判定 Keepalived 的工作情况,如果未接收到心跳包就说明 Keepalived 已经停止工作了)如果 192.159 这台服务器的 Keepalived 停止工作了,那么此时就会解绑 VIP ,并且将这个 VIP 与第二台服务器 192.160 绑定,接下来前端的应用程序请求的依然是 190.200(应用程序请求的地址固定不变),绑定第二台服务器后请求 190.200 实际上就是请求 192.160,并且通过第二台 HAProxy 将请求继续往下转发,转发给后端的 MyCat ,然后来实现 MyCat 的负载均衡。

image.png

在这个机制下,实际上有这么一种可能,当考虑如何去判断第一台节点停止工作,就是两个 Keepalived 维持一个心跳,如果没有接收到 Keepalived 的心跳包,那么就认为此节点停止工作,那么假如,在第一台节点中,首先初始情况下,VIP 与第一台 159 进行绑定,那么这个时候由于某种原因,在运行的时候 HAProxy 停止工作了,Keepalived 保存工作状态,第一台 Keepalived 会向第二台 Keepalived 发送备用心跳包,备用节点若接收到心跳包就会判定主节点仍在工作,但是主节点中的 HAProxy 已经停止工作了,接下来前端的应用程序请求 HAProxy 的时候,就不能转发给后端的 MyCat 了,此时就会出现问题,但在实际操作过程中,会在 Keepalived 中嵌入一个脚本,通过此脚本来检测 HAProxy 的状态,如果发现 HAProxy 已经停止工作了,Keepalived 中的脚本会尝试重启 HAProxy ,如果 HAProxy 重启之后发现没有此进程,Keepalived 中的脚本会将 Keepalived 自删,一旦自删 Keepalived 就不能向备用节点发送心跳包,备用节点接收不到心跳包就会判定第一个服务器停止工作了,此时会将 VIP 与第二台节点进行绑定。

相关文章
|
4月前
|
网络协议
keepalived对后端服务器的监测方式实战案例
关于使用keepalived进行后端服务器TCP监测的实战案例,包括配置文件的编辑和keepalived服务的重启,以确保配置生效。
95 1
|
8月前
|
负载均衡 前端开发 应用服务中间件
NGINX高可用之keepalived+nginx主从模式+主主模式配置实践
NGINX高可用之keepalived+nginx主从模式+主主模式配置实践
1018 1
|
机器学习/深度学习 编解码 运维
高可用方案组件,Keepalived详解
高可用方案组件,Keepalived详解
1265 0
|
监控 网络协议 数据安全/隐私保护
高可用 - 05 Keepalived配置(全局配置、VRRPD、LVS)
高可用 - 05 Keepalived配置(全局配置、VRRPD、LVS)
728 0
|
负载均衡 网络协议 关系型数据库
MyCat-集群-keepalived 启动及 haproxy 的高可用测试 | 学习笔记
快速学习 MyCat-集群-keepalived 启动及 haproxy 的高可用测试
MyCat-集群-keepalived 启动及 haproxy 的高可用测试 | 学习笔记
|
中间件 Shell 数据库
MyCat-集群-keepalived 安装配置 | 学习笔记
快速学习 MyCat-集群-keepalived 安装配置
MyCat-集群-keepalived 安装配置 | 学习笔记
|
负载均衡 Ubuntu Linux
Mycat高可用方案-HAProxy+Keepalived
Mycat高可用方案-HAProxy+Keepalived
2222 0
Mycat高可用方案-HAProxy+Keepalived
|
监控 负载均衡 网络协议
Keepalived的原理和web服务高可用实践
Keepalived的原理和web服务高可用实践
Keepalived的原理和web服务高可用实践
|
NoSQL 关系型数据库 MySQL