五 总结&反思
本文介绍了菜鸟积分系统拆库&数据迁移整个过程,总结了基于菜鸟现业务下的数据迁移方案,同时介绍了迁移时遇到的问题以及解决方案,整个迁移过程从方案制定到最终的迁移完成持续约一个多月时间,最终完成迁移。无论是利用数据库工具还是利用服务对数据进行迁移,目标都是一致的那就是数据无差异,用户无感知,异常可监控,方案可回滚。下面是自己反思的几个点:
- 敬畏生产环境,敬畏线上数据,操作数据迁移需要核对仔细校验,迁移数据库表结构以线上数据为准,切勿以日常数据库表结构为准。在迁移前尽可能进行演练,通过一些测试编写的自动化脚本能否高效发现一些潜在的问题。
- 同时存储是有状态的,迁移难度比较大,开发者需要具备前瞻性,尽量在选型的时候慎重,选择合适的数据库,避免进行数据库迁移。发现数据库选型有潜在的问题时,需要当机立断,尽早迁移。不要以为出现问题的概率不大,就拖延了。否则一旦出现问题,就是重大故障,造成的损失难以估量。
- 在业务高速发展的同时更应该注重系统的稳定性建设,在对积分系统拆库完成之后在也不用担心积分系统在大促期间性能瓶颈问题了,只有将系统稳定性筑基好,业务才能跑的更健康更快。但是拆库仅仅是使系统变健壮的某一小步,后续系统稳定性建设可能还有更长的路要走。以此为鉴,砥砺前行。
- 没有过程的结果叫垃圾,没有结果的过程叫放屁,有意义的目标,并且拿到结果,个人认为这才是一个人、一个团队之所以努力工作的根本原因。整体上切库任务重,时间紧,风险高,在与时间赛跑的过程中,虽然难题层出不穷,路途磕磕绊绊,但最终菜鸟积分系统分库分表迁移项目顺利完成,为后续大促服务提供健壮的技术支持。
六 参考资料
[1] TDDL开源Github地址 https://github.com/alibaba/tb_tddl
[2] 阿里愚公开源Github地址 https://github.com/alibaba/yugong
[3] 阿里云DTS产品官网 https://www.aliyun.com/product/dts