暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL中间件集群平滑迁移的初步方案

728

这是学习笔记的第 2329篇文章

  

  

  最近有一套MySQL集群环境的服务器即将过保,为了避免后续带来的一些额外问题,需要提前考虑服务器的迁移计划,但是现在的线上业务,申请维护时间是比较困难的,而且在线变更的容忍时间是很短暂的,一般在业务层也有容错机制,比如超时时间,容错次数等,所以希望整个方案是可控并且变更时间对于业务侧是清晰的。

整个集群的迁移计划是按照1:1的模式进行服务器对等替换,也就意味着原来有30个服务器,要对等30个服务器来进行平移,按照之前的实践来看,整体的迁移时间基本控制字5秒以内。

集群的整体部署架构如下,连接层使用了基于Consul的负载均衡机制,数据分片节点使用了一主一从的模式。

在迁移中,因为从库默认是不接入业务的,所以相应的从库的替换可以平滑实现,即用新的服务器顶上去成为新的从库,如果可以保证IP不变,整体的拓扑结构是没有任何变化的。

接下来,考虑的是要新增一个数据从库节点,这个节点是基于新的从库节点进行的级联复制,整体结构如下:

在迁移前,需要对已有的中间件进行缩容,先能够逐步减少为1个中间件节点,这个过程可以使用备用连接池技术实现,也可以主动触发应用重连机制实现。

在切换的过程中,可以把原本的Consul模式降级为基于IP的模式,中间件P1连接的数据分片节点会在切换中可以先映射为S1-S4,这个过程简单理解就是重启中间件节点P1,在重启的过程中会逐步释放M1-M4上面的连接,为了保证数据的一致性,需要配置M1-S1,M2-S2,M3-S3,M4-S4之间的数据双向复制。

切换完成后就成为简单的一主一从的拓扑结构,整体来说还是比较好理解的,这样就整合到了新的服务器组中。

增加中间件节点,并且开启Consul服务,这样业务就又恢复成为和之前对等的使用模式。

当然整个过程中都是最简化的步骤,在每个步骤中都需要有严谨的思考和验证。

各大平台都可以找到我

  • 微信公众号:杨建荣的学习笔记
  • Github:@jeanron100
  • CSDN:@jeanron100
  • 知乎:@jeanron100
  • 头条号:@杨建荣的学习笔记
  • 网易号:@杨建荣的数据库笔记
  • 大鱼号:@杨建荣的数据库笔记
  • 腾讯云+社区:@杨建荣的学习笔记

近期热文:

春节真是体会“财务自由”的最佳心理期

新年大吉 总结了如下的感想

《大江大河2》最触动我的一段经典对话

MySQL 8.0给开发方向带来的一些困扰

迁移到MySQL的业务架构演进实战

MySQL业务双活的初步设计方案

如何优化MySQL千万级大表,我写了6000字的解读

一道经典的MySQL面试题,答案出现三次反转

小白学MySQL要多久?我整理了10多个问题的答案

转载热文:

2020年度20多款主流数据库重大更新及技术要点回顾

工行“去O”数据库选型与分布式架构设计

MySQL 实战笔记 第01期:MySQL 角色管理

MGR用哪个版本?5.7 vs 8.0

SQLcl这个可爱的小工具,来了解一下呀~

CPU占用又爆了?MySQL到底在干什么

这个MySQL优化原理剖析,比照X光还清楚

自己动手写SQL执行引擎

最受欢迎的微服务框架概览

程序员,保住你的钱袋子!

QQ群号:763628645

QQ群二维码如下, 添加请注明:姓名+地区+职位,否则不予通过


在看,让更多人看到

文章转载自杨建荣的学习笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论