1.准备好双写的代码,可以考虑用mybatis插件机制,结合配置
2.增量同步数据-上线双写,这里写新表用异步,不阻塞原有流程,并且做好日志但是读还是读老的,增,删,改都以老表为准,这时候,新老表都有最新数据
3.全量同步数据-将旧的数据hash到新的表,需要考虑新老表都有数据时候,以老表为准。要考虑锁表问题,最好分页查,再插入,或者使用bdp数据同步工具
4.灰度切读,部分节点切成走新规则,同样是双写,重点观察这些灰度节点数据是否正常,要有对比
5.全量切读,一点点增加切读的节点,发现有问题随时下发配置切回原来的老表
6.灰度切写
7.全量切写
8.关双写,观察一段时间,读写都走新表没问题了,就关了写老表
还要做好容错,回滚,对比方案