-
前言:多租户系统为什么最怕“迁移”?
- 租户迁移 = 真实世界的“搬家”
- 停机不可能、数据量巨大、业务正在运行
- 数据迁移是 SaaS 系统最难的问题之一
-
租户数据迁移常见场景
- 租户从共享库迁移到独立库
- 老租户拆成多个子租户
- 租户合并(集团/部门合并)
- 冷数据归档
- 分库分表重新规划
-
迁移风险点解析
- 迁移过程必须不断服务
- 数据写入冲突
- 数据量极大(百万/亿级)
- 迁移失败如何回滚?
-
租户迁移体系三层结构
- 数据准备层(schema、租户配置、元数据)
- 数据迁移层(批量迁移 + 增量迁移)
- 切换层(路由切换、回滚路径、观察期)
-
增量迁移实现
- Binlog Listener
- MQ 异步同步
- 双写(读旧库,写新库)
- 最终一致性校对
-
迁移切换(Switching)策略
- 强制切换 vs 灰度切换
- 租户级流量染色
- 切换后的观察期监控(指标对比)
-
回滚体系(最难也是必须)
- 数据反向同步
- 回滚点(Snapshot)
- 观察指标:业务成功率、延迟、错误量
-
案例:一个百万级租户从共享库迁移到独立库的全流程
- 不停机迁移
- 增量补偿
- 灰度切换
- 全链路验证
- 最终上线稳定
-
总结
- 租户迁移的本质是数据治理 + 分布式一致性问题
- 是大型 SaaS 系统的核心竞争力之一