MSHA提供四种容灾架构解决方案,包括同城多活、异地双活、异地双读以及异地应用双活。本文介绍各解决方案的架构特点,并对比各解决方案的建设成本、容灾能力和适用场景。

架构特点

  • 同城机房间的物理距离通常<50 km,跨机房的网络延迟较小(RT<2 ms)。
  • 应用跨机房冗余部署,同时对外提供服务。
  • 中间件、数据库跨机房主备部署,数据单点写避免考虑数据一致性问题。
同城多活容灾架构

  • 两个数据中心间的距离没有限制。
  • 应用、中间件、数据库多地域冗余部署,同时对外提供服务。
  • 业务流量带标,按路由规则分流,流量在数据中心(RPC、MQ、DB)内闭环。
  • 多个数据中心数据异步复制。

  • 两个数据中心间的距离没有限制。
  • 只读流量相关的应用、中间件、数据库双地域冗余部署,同时对外提供服务。
  • (可选)只读流量带标,按路由规则分流到两个数据中心。
  • 流量按比例或按路由标分流后,在数据中心(RPC、DB)内闭环调用。
  • 两个数据中心数据异步复制。

  • 两个数据中心的物理距离通常≤100 km,存在跨地域的网络延迟(RT≤7 ms)。
  • 应用、中间件两地冗余部署,同时对外提供服务。
  • 数据库两地冗余部署,两地应用单点写数据库,避免考虑数据一致性问题,数据异步复制。

容灾架构对比

同城多活 异地双活 异地双读 异地应用双活
拓展成本
  • 开通新可用区
  • 应用冗余部署
  • 云产品、中间件升级到跨可用区主备、集群版本(例如RDS、Redis等)
  • 开通新地域
  • 应用、中间件、数据库冗余部署
  • 中间件、数据库数据双向同步
  • 开通新地域
  • 应用、中间件、数据库冗余部署
  • 数据库数据双向同步
  • 开通新地域
  • 应用、中间件、数据库冗余部署
  • 数据库数据单向或双向同步
容灾能力 RPO 地域级故障不可控;机房级故障为秒~分钟级。 分钟级 分钟级 分钟级
RTO 地域级故障不可控;机房级故障为分钟~十分钟级。
说明 具体以主备数据同步延迟的情况而定。
分钟~十分钟级
说明 具体以数据同步延迟的情况而定。
分钟级 分钟~十分钟级
说明 具体以数据同步延迟的情况而定。
适用场景
  • 预算有限,不考虑异地容灾。
  • 期望建设周期短(≤2周)。
  • 期望业务代码零改造。
  • 不考虑数据一致性问题。
  • 预算充足,选择异地建立多活的数据中心。
  • 接受长建设周期(3~6个月)。
  • 能够选取合适的维度路由流量,做好数据分片。
  • 接受业务流量带标改造,业务代码带标、中间件升级改造。
  • 接受数据最终一致。
  • 期望只读业务容灾能力建设周期短(≤2周)。
  • 能够拆分读、写业务流量。针对只读业务,希望面对地域级故障场景具备分钟级恢复能力。
  • 接受数据最终一致。
  • 选择异地建立数据中心进行容灾。
  • 期望备中心资源不闲置,流量双活。
  • 接受跨地域网络延迟。
  • 期望业务代码零改造或少改造。
  • 不考虑数据一致性问题。
说明 相比异地多活,此方案无需流量带标和路由纠错。
限制 - - 业务可接受数据最终一致。 业务需要能接受跨地域网络延迟。
总结
  • 建设性价比高,适用面广。
  • 推荐企业首先建设同城双活,后续再演进到异地容灾架构。
  • 建设成本略高,但容灾能力最强。
  • 推荐企业选取核心业务来建设。
  • 建设成本较低,容灾能力强。
  • 推荐读多写少型企业(例如咨询、新闻等)选取核心业务来建设。
  • 建设成本中等,具备地域级容灾能力。
  • 推荐企业选取核心业务来建设。