简单讲讲"两地三中心"
两地三中心:一套高可用容灾架构的拆解
一、它解决什么问题
单机房部署的系统,故障域太大。断电、空调故障、网络中断、火灾、地震,任何一层出问题,业务直接归零。
传统的主备模式(一个生产 + 一个备份)能应对部分场景,但有两个硬伤:一是备份中心平时不承载业务,资源浪费;二是同城备份防不了城市级灾难,异地备份又因为延迟太高,日常故障切换慢、数据丢失窗口大。
两地三中心要同时解决这两个问题:既要快速切换、数据不丢,又要能扛住区域性灾难。
二、架构定义
"两地"指两个地理隔离的区域,通常是一个同城区域 + 一个异地城市,距离从几十公里到上千公里不等。
"三中心"指三个数据中心,角色和职责各不相同:
生产中心(Primary)
承载全部生产流量,处理用户的读写请求。所有数据的第一写入点。
同城灾备中心(同城 DR)
与生产中心同城部署,距离通常在几十公里内。通过高速专线与生产中心做同步复制,数据与生产中心保持一致。平时可分担部分读流量或处于热备状态。
异地灾备中心(异地 DR)
部署在几百公里外的另一城市。通过异步复制接收生产中心的数据。平时不承载生产流量,定位是区域性灾难发生后的最终兜底。
三、数据复制机制
这是整个架构的核心。三个中心之间的数据流动,决定了故障切换时的 RPO(恢复点目标)和 RTO(恢复时间目标)。
生产 → 同城:同步复制
生产中心收到写请求后,必须等同城灾备中心确认写入成功,才向客户端返回成功。这意味着两边数据强一致,RPO ≈ 0。代价是写延迟受同城网络 RTT 影响,通常在 1–5ms 量级,可接受。
生产 → 异地:异步复制
生产中心写完本地和同城后,异步将数据推送到异地灾备。异地确认与否不影响生产中心的写返回。因此异地数据存在一定延迟,RPO 通常在秒级到分钟级。这个延迟换来的是距离——几百公里的物理距离,只能用异步来覆盖。
复制链路示意:
客户端
│
▼
生产中心(写成功)
├── 同步 ──▶ 同城灾备(写成功)──▶ 返回客户端成功
└── 异步 ──▶ 异地灾备(最终一致)四、故障切换逻辑
场景一:生产中心机房级故障(断电、网络中断、硬件故障)
切换到同城灾备中心。由于数据同步复制,RPO ≈ 0;同城距离近,切换可在秒级到分钟级完成,RTO 较低。业务基本无感知。
场景二:同城区域级灾难(地震、洪水、大面积停电)
生产中心和同城灾备中心同时失效,启动异地灾备中心。由于异步复制,异地数据可能落后几秒到几分钟,RPO > 0;异地中心需要从冷备或温备状态启动,RTO 通常在分钟级到小时级。
场景三:生产中心单点故障(某台服务器、某个存储节点)
不涉及中心级切换,由中心内部的高可用机制(集群、副本、负载均衡)处理,对两地三中心架构透明。
五、关键指标
RPO(Recovery Point Objective)
能容忍丢失多少数据。同城同步复制下 RPO ≈ 0;异地异步复制下 RPO 取决于复制延迟,通常秒级到分钟级。
RTO(Recovery Time Objective)
能容忍业务中断多久。同城切换通常在秒级到分钟级;异地切换取决于异地中心的就绪状态,冷备可能小时级,温备可缩短到分钟级。
这两个指标直接决定了架构的成本。RPO 和 RTO 越接近零,投入越大。
六、成本与适用场景
两地三中心的成本主要来自三块:三个数据中心的基建和硬件、跨城高速专线的带宽费用、数据同步软件和运维人力。异地中心平时不产出,纯成本项。
因此它主要适用于对数据安全和业务连续性要求极高的场景:
- 金融核心交易系统:每笔交易不可丢,监管有明确容灾要求
- 大型互联网平台:海量用户数据,停机损失巨大
- 政务与关键信息基础设施:数据安全优先级最高
对于中小规模业务,同城双中心或单中心 + 异地备份可能更具性价比。架构选型取决于业务对 RPO/RTO 的实际要求,而非技术越复杂越好。
七、小结
两地三中心的核心设计思想是分级防御:
- 同城同步复制 → 解决机房级故障,RPO ≈ 0,RTO 低
- 异地异步复制 → 解决区域级灾难,RPO > 0,RTO 较高但可接受
两个层级各司其职,用合理的成本覆盖从单点故障到城市级灾难的完整故障谱系。
评论已关闭