学前启蒙教育赛道,竞争日益激励,好未来集团旗下“小猴英语”,“小猴语文”,”小猴思维“三条独立产品站线,战略调整,资源合并,重拳出击,打造全新”小猴启蒙“品牌,专为2-6岁学前儿童打造的启蒙课程。
行业常见的迁移方案有“停机迁移”、”双写迁移“、”实时(单向)迁移“,每一种方案都各自的特点和优劣势,对各个方案进行分析。
在集团战略背景推动下,结合当前现状及对未来规划,期望抛弃历史包袱,轻装上阵,综合考虑后采用实时迁移方案。面临诸多挑战,例如:
迁移方案
小猴启蒙是一个全新的品牌,全新架构设计、存储结构设计,课程制作&排课设计,兼容旧的三科产品形态,同时具备灵活可扩展的能力。
第一步、迁移时机明确
迁移时机是用户下载小猴启蒙APP,登录之后触发时机,触发时机后首先通知三科服务,限制不可用,确保不会有新的数据长生,此时启动迁移脚本进行数据迁移,在此期间要确保迁移速度足够快并且确保数据一致性,从而提升用户体验,整个过程不可逆,一旦出现紧急情况,需要有应急预案,迁移成功之后,用户即可在小猴启蒙APP上课(英语、思维、语文)。再也不用在三个APP中上课
第二步、数据分析&归类
通过对业务及数据分析&归类、数据可分两大类基础数据、用户数据。两种数据类型特点也各不相同,例如:
第三步、针对不同数据特点,制定适宜迁移方案
通过上述分析了解业务当前的数据及特点分析,例如:
第四步、”实时迁移“技术方案剖析
整个迁移架构设计思想”透明化、先于用户发现问题,分钟级解决,数据可回溯“。在用户触发迁移时机后,调度中心通过采用Invoke反射机制,启动迁移子任务&监控个子任务的状态(耗时、里程牌),子任务视数据量决定是否分片处理。
核心架构设计点:RDS-TO-DRDS:面对交易明细或学习记录这类数据,为了在迁移时提升查询速度,可以考虑将数据同步到DRDS中,按照用户ID做分库分表的主键
第五步、质量保障体系设计
为了提升用户体验及迁移的速度及数据一致性所做的工作,使出现突发情况,我们能够对突发情况有应急预案。
对各个模块(任务)状态&进度监控,配备了自动修复机制,处理一定程度上的问题,当自动修复机制处理不了时,及时的预警处理,我们通过补丁助手可以快速修复问题。
上线是对我们前期所有的工作的一个考验及验证,这个过程我们还是要谨慎操作的。
内测阶段分为两步:
在上线的每一个阶段,对每个问题都要进行复盘总结,避免同样的问题再次发生,当复盘之后会发现,出现的问题都很低级,不应该出现的问题。例如:
环境问题:刚刚开始在预发环境,后期上线后对某个数据库地址修改拉下了,导致数据迁移不是最新的
Redis问题:缓存过期时间没有控制好,导致飞速增长。
ID问题:两边事前沟通不清楚、导致数据对不上。
数据模型建立的方法
新旧映射关系整理(点对点转换)
新结构新增的字段整理
新增数据结构整理
迁移数据量过20亿
未出现聚集性问题、失败率0.1‰
专利产出(已授权)数据迁移方法、装置、电子设备及存储介质
对个人成长还是比较大的,在技术上,架构设计权衡各方利益关系,没有完美的架构,只有最适合的,不能只关注架构层面,对细节点及落地也需要更加的关注,细节决定成功。在项目管理上,对项目沟通协调、节奏、风险把控也有很大的提升,作为此次项目Owner,负责并协调七八种角色,将近30人,此次项目的成果离不开组内及各位伙伴的定力支持,另外也要感谢刘俊海老师对整体方案的指导。
原文:https://blog.51cto.com/u_13706604/2976017