
零停机不是靠迁移的速度来实现的,而是通过让新旧环境在一定时间内同时运行,流量切换可以随时控制。
第一步是建立同步。新服务器部署相同版本的运行环境,数据库进行主从复制,保证延迟在秒级以内;文件和媒体目录使用增量工具不断比对,防止一次拷贝之后新旧数据混在一起。
第二步是进行一致性检验。抽样对比各个表格中的记录数、关键字段的校验值以及上传文件的大小和数量,抽查带有时间特征的业务的完整性,确认没有问题之后再进行分流。
第三步是灰度切流。利用解析权重或者负载均衡的方式将少量的流量引入到新的环境中去,查看错误率、响应时间以及业务指标等数据。一旦发生异常就马上回切,旧环境保持完整可以回退。
第四步结束。全量切流之后旧环境会变为只读状态,保持一段时间,完成延迟写入之后再下线;同步期间双写的逻辑要在规定的时间点关闭,否则会出现重复写入的情况。
方案的价值就是可以回退,每一步都要留下反向路径,切流比例和观察时间要提前写在预案里。