首页/数据/备份与容灾速查/多活与单元化架构

多活与单元化架构

按用户或地域把流量与数据划分到多个单元(cell),每个单元独立读写;单元间故障隔离,通过调度把流量迁到健康单元。

备份与容灾速查数据更新于 2026-10-13

多活与单元化架构

按用户或地域把流量与数据划分到多个单元(cell),每个单元独立读写、自成闭环,单元之间故障隔离,出问题时由调度层把流量迁到健康单元。它把『容灾切换』转化为『流量调度』:切换粒度更小、影响面更可控。代价是对数据分片、路由与全局数据同步的设计要求明显提高。

基本信息

划分维度用户 ID 哈希、地域、租户
单元内应用与数据自包含,单元内调用不跨城
跨单元少量全局数据(配置、路由表)单独同步
切换单位单元级或分片级,而非整站级

典型使用场景

  • 大规模互联网业务:按用户分片,避免单集群容量与故障域过大
  • 跨地域低延迟:用户就近访问所属单元,减少跨地域调用
  • 灰度与隔离:新版本先在部分单元上线,观察后再全量
  • 容量扩展:新增单元即扩容,比纵向扩单集群更平滑
  • 故障演练:随机下线一个单元,验证流量调度与数据完整性

路由与切换示意

路由与切换示意
# 用户分片键 user_id -> 单元 A / B / C(路由表由调度层维护)
# 单元内闭环:A 的用户只访问 A 的应用与数据分片
# 单元 A 故障 -> 调度层把新会话路由到 B / C
# 存量会话:强制重新登录或按降级策略处理
# 全局数据:路由表、配置、白名单单独同步,变更需审核与灰度
# 观测要点:单元维度的成功率、时延与数据一致性指标,按单元分别看

设计要点与风险

要点说明风险
分片键选择决定数据落在哪个单元选择不当会造成热点单元
单元自包含单元内不依赖其他单元跨单元强依赖会把局部故障放大
全局数据配置与路由表同步链路成为隐藏单点
数据迁移用户跨单元迁移迁移中的双写与一致性问题最难处理
单元化把切换粒度变小,但对调度与数据路由设计要求高:一旦路由表本身成为集中式单点,多活的收益会被抵消。

易错点

  • 单元划分后跨单元强依赖没拆干净:某个单元故障仍会拖垮全局
  • 全局数据(路由表、配置)同步成为隐藏单点:没有独立的高可用设计
  • 分片键选择不当:流量与数据倾斜到少数单元,热点问题长期存在
  • 缺少单元级观测:故障时无法判断是哪个单元的问题,调度无从下手

数据来源与参考

  • 大型互联网系统多活架构实践(单元化 cell 设计讨论)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌