【解决方案】不停机双写方案实现

背景:

新老系统不停机上线必备方案。

直接上图:

前期准备:

部署新服务,修改老服务中的热配,控制接口调用老服务或者新服务

步骤:

  1. 设置热配(读旧服务、写旧服务)。(这一步的目的是如果迁移过程中有问题,可以快速回滚,保障业务系统稳定)
  2. 发布部署新服务,新服务进行数据迁移。(预计耗时1小时)
  3. 数据迁移完成后,调整热配(读旧服务、写旧服务+写新服务),同时进行数据校正。(因为系统仍在使用,旧服务一直都有新数据产生,旧数据库和新数据库之间会有1小时的数据差异)。数据校正完成,观察一周数据准确情况。(每天执行几次对比新旧数据库的数据是否一致)
  4. 观察数据准确后,调整热配(读新服务、写旧服务+写新服务),再次观察一周数据准确情况。
  5. 新数据没问题后,调整热配(读新服务、写新服务),双写上线完成。
  6. 切换网关路由到新服务,上线后观察一周,可以把旧服务废弃代码删除,废弃数据进行归档处理。

总结:

双写上线方案是在高并发系统中不停服上线时的优先选择。

优点有以下几点:

业务可控,根据热配随时调整处理逻辑,服务不停机上线,上游无感知,出现问题可以切换热配达到回滚的效果.
数据可控,双写方案中涉及对比验证修复等,当数据准确后再进行下一步,可以避免很多不必要的麻烦.
缺点是开发耗时耗力,对业务和服务需要有整体把控的能力,如果不是重大项目不需要采用这种方案。

posted @   Micky233  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示