2024-08-04
版权声明:本文为博主付费文章,严禁任何形式的转载和摘抄,维权必究。 本文链接:https://www.skjava.com/mianshi/baodian/detail/1670009867

回答

当我们完成数据迁移且数据校验没什么问题的时候,我们就开始切流了。为什么是切流,而不是一把切呢?因为我们无法保证新系统就一定是没有问题的,如果有问题的话,直接上线新系统关闭老系统这样的操作会带来史诗级灾难。

所以,为了避免你年底背绩效,你需要灰度、按流慢慢来切换到新系统。

第一步:切流测试

如果线上有流量录制功能,我们可以在线上采集一些流量,然后将新库数据 dump 到准生产环境(或者独立的测试环境),进行回放。回放完成后,我们需要进行数据验证,待数据验证无误后,准备发布上线。

第二步:二次校验

条件允许的情况下,为了安全起见,在正式切流之前,我们可以进行二次校验,这次校验最好是全量,如果二次校验发现还有数据差异,则需要排查下问题,同时延后切流。

第三步:开启双写切流

在系统低流量阶段(一般都是凌晨),找准时机,放入很小一部分写流量到新库,比如 10 笔交易,观察日志,数据校验。在双写切流时,可以暂时关闭 binlog 日志同步,主要是为了观察这部分新流量数据的正确性。