【解决方案】不停机双写方案实现
背景:
新老系统不停机上线必备方案。
直接上图:
前期准备:
部署新服务,修改老服务中的热配,控制接口调用老服务或者新服务
步骤:
- 设置热配(读旧服务、写旧服务)。(这一步的目的是如果迁移过程中有问题,可以快速回滚,保障业务系统稳定)
- 发布部署新服务,新服务进行数据迁移。(预计耗时1小时)
- 数据迁移完成后,调整热配(读旧服务、写旧服务+写新服务),同时进行数据校正。(因为系统仍在使用,旧服务一直都有新数据产生,旧数据库和新数据库之间会有1小时的数据差异)。数据校正完成,观察一周数据准确情况。(每天执行几次对比新旧数据库的数据是否一致)
- 观察数据准确后,调整热配(读新服务、写旧服务+写新服务),再次观察一周数据准确情况。
- 新数据没问题后,调整热配(读新服务、写新服务),双写上线完成。
- 切换网关路由到新服务,上线后观察一周,可以把旧服务废弃代码删除,废弃数据进行归档处理。
总结:
双写上线方案是在高并发系统中不停服上线时的优先选择。
优点有以下几点:
业务可控,根据热配随时调整处理逻辑,服务不停机上线,上游无感知,出现问题可以切换热配达到回滚的效果.
数据可控,双写方案中涉及对比验证修复等,当数据准确后再进行下一步,可以避免很多不必要的麻烦.
缺点是开发耗时耗力,对业务和服务需要有整体把控的能力,如果不是重大项目不需要采用这种方案。
本文来自博客园,作者:Micky233,转载请注明原文链接:https://www.cnblogs.com/geek233/p/17372184.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~