多活架构是支撑大型互联网系统高可用与业务连续性的核心架构模式。与传统的灾备方案不同,多活(Active-Active)架构通过在多个地理区域同时部署并运行服务实例,实现跨地域的并行服务能力。这不仅是为了灾备,更是为了持续提供高可用服务。
多活架构的本质,是让“容灾系统在灾难发生前就已经在持续提供服务”。它并非冷备或热备,而是一套跨地域同时对外提供服务的生产体系,可以极大提升系统的整体可用性、容错能力与性能体验。
多活架构的典型方案:两地三中心
在实际落地中,一种兼顾成本、时延与可靠性的常见模式是“同城双活 + 异地灾备”的两地三中心方案。
“两地三中心”通常指在同一个城市内部署两个同时活跃的数据中心(同城双活),并在另一个城市部署第三个灾备中心,形成完整的容灾体系。

其整体逻辑架构如下所示:
┌──── DNS / GSLB ────┐
│ │
同城 A 同城 B
(活) (活)
│ │
LB / 网关 LB / 网关
│ │
应用集群 应用集群
│ │
缓存集群 缓存集群
│ │
数据库主 ←─同步─→ 数据库备
└─────────────────────┘
│
异地灾备库
在此架构中,两套同城数据中心(A中心和B中心)同时对外提供服务,并实时进行数据同步,共同承担日常业务流量,实现真正的“双活”。异地中心(C中心)则作为灾备节点,根据业务对恢复时间目标(RTO)和数据丢失容忍度(RPO)的要求,可配置为冷备、温备或热备,承担最终的灾难恢复职责。
各中心角色与目标解析
1. 同城双活中心
- 地理位置:位于同一城市或邻近区域,通常距离≤200公里,以确保网络延迟足够低(通常在几毫秒内)。
- 核心目标:应对单机房级别的故障,例如机房断电、空调故障、内部网络中断,或是关键的中间件、数据库集群故障。其设计目标是确保同一个城市内的任何一个数据中心发生故障,业务流量可以几乎无感知地切换至另一个中心,保证业务连续性。
- 数据同步:依赖于低延迟、高带宽的专线,实现数据的实时或准实时同步,力求达到RPO=0(零数据丢失)。
2. 异地灾备中心
- 地理位置:部署在另一个城市,距离通常>200公里,以实现地理意义上的隔离。
- 核心目标:应对城市级别的重大灾难,例如地震、洪水、大规模断电、长时间通信中断等。其设计目标是防止核心数据和服务在同一地理区域“全军覆没”,为核心业务提供最后的恢复保障。
- 运行模式:平时一般不处理生产流量,主要用于接收并备份从同城主中心异步同步过来的数据。当同城双中心均不可用时,灾备中心才被激活并接管服务。
总而言之,两地三中心的多活架构,通过分层、分级的容灾设计,在成本与可靠性之间取得了有效平衡。同城双活保障了日常的高可用与高性能体验,而异地灾备则为极端情况下的业务生存提供了最终保障,是构建企业级高可用后端架构的坚实基石。
|