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 与第二台节点进行绑定。

相关文章
/usr/bin/cmake: /usr/local/lib/libcurl.so.4: no version information available
/usr/bin/cmake: /usr/local/lib/libcurl.so.4: no version information available
|
存储 人工智能 数据管理
【云故事探索】基于阿里云助力地理产业2.0落地,实现遥感数据智能化管理
中国某遥感数据服务中心借助阿里云ECS、GPU和OSS服务,成功实现了地理信息产业升级。此前,中心面临数据管理混乱、服务响应慢等问题。通过阿里云的解决方案,构建了全生命周期管理的遥感数据平台,强化了自动化、智能化的数据生产能力,提升了数据服务的准确性和及时性。此外,平台还增强了数据共享,扩大了应用范围。未来,中心计划结合AI技术,探索地理信息3.0时代,利用阿里云的人工智能平台进一步提升数据管理和应用能力。
780 1
|
8月前
|
人工智能 编解码
导演失业预警!Seaweed-7B:字节7B参数模型让剧本自动变电影!20秒长镜头丝滑生成
Seaweed-7B是字节跳动推出的70亿参数视频生成模型,支持从文本、图像或音频生成高质量视频内容,具备长镜头生成、实时渲染等先进特性,通过优化架构显著降低计算成本。
412 10
导演失业预警!Seaweed-7B:字节7B参数模型让剧本自动变电影!20秒长镜头丝滑生成
|
8月前
|
存储 人工智能 安全
AI 驱动下的阿里云基础设施:技术创新与产品演进
本文整理自阿里云智能集团副总裁、阿里云弹性计算产品线与存储产品线负责人吴结生在“2025 AI势能大会”上的演讲,重点介绍了阿里云在AI基础设施领域的技术创新与产品演进。内容涵盖CIPU架构、盘古存储系统、高性能网络HPN等关键技术,以及第九代英特尔企业实例、ESSD同城冗余云盘等新产品发布。同时,文章详细阐述了灵骏集群的优化措施和可观测能力的提升,展示阿里云如何通过持续创新为AI负载提供强大支持,助力企业在AI时代实现智能化转型。
AI 驱动下的阿里云基础设施:技术创新与产品演进
|
开发框架 Java UED
如何使用 Spring Boot 实现异常处理
如何使用 Spring Boot 实现异常处理
523 2
|
存储 运维 算法
从 JDK 9 到 19,认识一个新的 Java 形态(内存篇)
这篇文章是 EDAS 团队的同学在服务客户的过程中,从云原生的角度将相关的功能进行整理和提炼而来。希望能和大家一起认识一个新的 Java 形态。
9583 98
从 JDK 9 到 19,认识一个新的 Java 形态(内存篇)
|
JavaScript NoSQL Java
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
429 0
|
SQL 数据库 流计算
Flink CDC数据读取问题之一致性如何解决
Flink CDC 使用Change Data Capture (CDC)技术从数据库捕获变更事件,并利用Flink的流处理能力确保数据读取一致性。相较于传统工具,它具备全增量一体化数据集成能力,满足实时性需求。在实践中解决了高效数据同步、稳定同步大量表数据等问题。应用场景包括实时数据同步、实时数据集成等。快速上手需学习基本概念与实践操作。未来发展方向包括提升效率与稳定性,并依据用户需求持续优化。
394 1
|
JavaScript 前端开发 安全
Jsoup学习总结
Jsoup学习总结
191 5
|
域名解析 缓存 运维
Linux巩固篇013-Linux BIND域名解析服务
纸上得来终觉浅,绝知此事要躬行
553 1
Linux巩固篇013-Linux BIND域名解析服务