当前位置: 首页 > article >正文

Redis双活切换平台建设

背景

随着公司目前整体双活能力的建设完成,需要对Redis组件的双活能力进行演练和验证。但在实际生产环境中,面对如此大规模的Redis集群,演练过程中几个关键问题仍然存在:主从切换时间长、系统高可用要求高、运维流程复杂,并且在Redis集群切换过程中涉及到内存数据的同步,直接影响到业务系统的稳定性。

因此急需对Redis集群的双活切换操作进行自动化平台建设,简化运维操作流程,精细化管控切换细节,提升整体的切换效率,保证双活演练稳定和高效的开展。

架构简介

目前生产业务的Redis集群已完成了双活的建设,集群整体架构为:

  1. Master (主机房) - Slave (主机房) - Slave (备机房)

双活切换后整体架构变为:

  1. Master (备机房) - Slave (主机房) - Slave (主机房)

Master节点从主机房切换为备机房, 整体由备机房提供服务,验证备机房的redis主节点能否撑住整体业务,以达成双活演练的目的。

手动演练流程

存在的痛点:

手动操作的演练过程中,实际遇到了以下问题:

  1. 编排计划需要对大量集群进行统计和分组,导致耗时长、操作复杂。
  2. 脚本执行涉及大批量数据,失败问题难以定位,且在紧急情况下难以进行回滚。
  3. 执行过程缺乏可控性,大集群切换时,失败率较高。

双活切换自动化

为了解决以上痛点,我们通过自动化平台,将redis双活切换自动化:

  1. 集群数据自动编排分组,降低编排难度
  2. 对编排后集群分组进行一键双活切换,简化运维操作,精细化管控操作过程
  3. 集群切换一键回滚,把控切换风险

集群数据自动编排分组

  1. 申请页面可进行集群数据的选择,按 业务线、集群、全部的集群范围进行选择。通过设置集群并行内存限制数和集群并行数量,进行执行过程的并发量控制。

2. 集群按实例容量范围和主节点范围进行集群分布,将各范围集群划分到各个执行组中,按组维度进行执行。

3. 数据准备完成,展示整体的执行编排计划、分组数据以及整体集群切换计划执行时长。

切换时间预测

分组执行

点击确认执行,组状态变为执行中;按组的规则限制,自动拉取【未开始】的集群列表,状态变为【切换中】;集群并发限制遵循编排规则,可支持集群间(集群并行数量限制)【并发】切换;集群实例间【串行】执行主从切换操作。

页面效果:

  1. 执行组详情页面可快速查看失败的集群和失败原因,使执行过程可视化。

  1. 集群实例切换详情,可实时观测切换前后实例所属机房和节点角色变化情况,以及执行详情记录、执行时长和节点切换状态的展示

一键回滚

点击一键回滚后,组内【切换成功】或 【切换中】的集群会按并发限制进行回滚,回滚时也遵循并发执行规则,在紧急或正常情况下,都能执行集群的回滚操作,降低业务风险。

回滚流程:

页面效果:

整体效果

平台投入双活演练使用以后,极大降低了运维人员的操作难度,实现了Redis集群双活一键切换的目标。整体切换过程可视化程度极大提高,切换成功率稳定在100%;重试、回滚功能的增加,使切换风险也得到有效控制;切换时长精度控制在秒级别,半小时内高效安全完成切换,为双活演练的顺利完成保驾护航。

未来展望

后续会继续实现 mq 、kafka、db等组件的自动切换流程,实现各组件的全流程自动切换,使双活演练更安全、高效的进行。

作者介绍

sl 后端研发专家;msq 基础架构研发专家

招聘信息

拍码场


http://www.kler.cn/a/413844.html

相关文章:

  • 电子应用设计方案-28:智能云饭锅系统方案设计
  • 重塑用户体验!快手电商智能巡检平台的实践与探索
  • 2.mybatis整体配置
  • C#开发合集
  • UE5 实现组合键触发事件的方法
  • || 与 ??的区别
  • React Native Android 和 iOS 开发指南
  • 51c自动驾驶~合集35
  • (vue)启动项目报错The project seems to require pnpm but it‘s not installed
  • 40分钟学 Go 语言高并发:超时控制与取消机制
  • 【多线程-第一天-多线程的技术方案-pthread带参数-桥接-bridge Objective-C语言】
  • OODA循环在网络安全运营平台建设中的应用
  • 【ESP32CAM+Android+C#上位机】ESP32-CAM在STA或AP模式下基于UDP与手机APP或C#上位机进行视频流/图像传输
  • QT5+OpenCV+libdmtx识别datamatrx ECC200二维码
  • 论文概览 |《Cities》2024.11 Vol.154(上)
  • 【tiler】一个数据可视化和地图处理切片的 Python 库
  • Rook入门:打造云原生Ceph存储的全面学习路径(上)
  • DAMODEL丹摩|部署FLUX.1+ComfyUI实战教程
  • MyBatis基本操作
  • 前端页面或弹窗在线预览文件的N种方式
  • python爬虫案例——猫眼电影数据抓取之字体解密,多套字体文件解密方法(20)
  • YOLOv10改进,YOLOv10添加TransNeXt中的ConvolutionalGLU模块,CVPR2024,二次创新C2f结构
  • TypeScript 字面量类型与类型别名
  • Sqoop的安装和配置,Sqoop的数据导入导出,MySQL对hdfs数据的操作
  • AWS EC2设置用户名密码登录
  • 通过 SSH 进行WordPress网站的高级服务器管理