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

​业务双活的数据切换思路设计(下)

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


640?wx_fmt=gif

前几天写了一篇关于业务双活的数据切换思路设计,我今天把下半部分补充一下。

首先整个业务的上游是流量入口,分为读流量和写流量,整体是分布式设计。

640?wx_fmt=png

在完成数据迁移,数据同步之后,目前的流量是在“已有数据服务”侧,如果要实现服务的平滑迁移,我们可以按照这个流程来进行设计。

首先关闭两个数据服务间的数据旁路,类似下面的图。

640?wx_fmt=png

为了描述更加清晰,我们把读流量和写流量都标识出来,方便区分理解。

所以上面步骤可以用下图来进行细化表示。

640?wx_fmt=png

接下里我们需要把写流量逐步切换到“数据服务-new”上面,类似于下面的形式,这个时候写流量其实是写入两个数据服务中了。

640?wx_fmt=png

当然在流量切换的过程中,势必会有一部分写流量没有完全同步过去,我们可以基于“已有数据服务”进行增量数据校正,这是一个底层的数据处理操作,而这个过程“数据服务-new”因为还没有对业务开放,这个过程是没有业务影响的。

640?wx_fmt=png

我们接下来把读流量逐步切换过去,切换完成就是如下图所示的情况了,读写流量都切换到了新的数据服务中。

640?wx_fmt=png

而“已有数据服务”的写流量照样是写入,这样就达到了一种“理想”的双写状态。

640?wx_fmt=png

这个过程中可以自由进行数据流量的切换,如果发现“数据服务-new”的部分逻辑存在异常,我们可以直接把读流量切换原来的“已有数据服务”即可,然后在底层进行数据修复,满足情况之后,继续上面的步骤把流量切换过来。

这样一来,我们就可以顺利完成数据业务的整体迁移过程,在这个过程中会和开发团队进行密切的配合,迁移的很多工作不单单是DBA来处理,也需要业务的深度接入和配合,这样一来业务的稳定性和健壮性都有一定的保证。

昨天收集了一批读者的建议,我先建立一个QQ群,大家扫码来加入,我在后台做下审核。

QQ群号:763628645

QQ群二维码如下:

640?wx_fmt=png

个人微信号:jeanron100, 添加请注明:姓名+地区+职位,否则不予通过

640?wx_fmt=png

在看,让更多人看到

相关文章:

  • 如何评价兰州交通大学的软件工程专业?
  • 如何基于Python实现MySQL查询的API设计,附上完整脚本
  • MyCAT让人诟病的配置文件,说说破局的思路
  • DBA菜鸟的进化简史:不忘初心,记工作中踩过的三个坑
  • 对构建个人知识体系的一些建议
  • 关于大数据运维能力的一些思考
  • 一道经典的MySQL面试题,答案出现三次反转
  • 关于公众号文章搜索,有两个小技巧
  • 程序员:站在“自学”鄙视链顶端的王者
  • 如何使用Python模拟MySQL Slave,可以看看这个开源项目
  • 用好搜索神器Everything,盘活你的文件
  • 【程序员软实力】如何构建?我坚持了2100多天,收获了这些心得
  • MySQL数据流转集成,从快速测试Maxwell开始
  • 从故障处理流程看结构化思维
  • dbaplus-爱可生社区-北京站沙龙归来
  • Akka系列(七):Actor持久化之Akka persistence
  • Angular6错误 Service: No provider for Renderer2
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • JavaScript实现分页效果
  • JAVA之继承和多态
  • Objective-C 中关联引用的概念
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • python_bomb----数据类型总结
  • Rancher如何对接Ceph-RBD块存储
  • Spring Boot快速入门(一):Hello Spring Boot
  • Travix是如何部署应用程序到Kubernetes上的
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 关于 Cirru Editor 存储格式
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 浅谈web中前端模板引擎的使用
  • 小而合理的前端理论:rscss和rsjs
  • 异步
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • (20050108)又读《平凡的世界》
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (四)Android布局类型(线性布局LinearLayout)
  • (算法)Travel Information Center
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (原)Matlab的svmtrain和svmclassify
  • (转)【Hibernate总结系列】使用举例
  • .CSS-hover 的解释
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .Net Memory Profiler的使用举例
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NET 设计模式初探
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .NET分布式缓存Memcached从入门到实战
  • .NET简谈设计模式之(单件模式)
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)