多地域部署

把服务与数据分布到多个地域,兼顾就近访问与地域级容灾;主动-主动需要解决数据冲突与流量调度,主动-被动实现简单但存在切流决策与容量验证成本。

多地域部署是什么

多地域部署把服务与数据分布到多个地域,兼顾就近访问与地域级容灾。主动-被动由单地域承载,故障后切流,实现简单但需要提前验证备用容量;主动-主动两地同时承载,能降低访问延迟并提升可用性,代价是必须处理跨地域数据冲突。

决策要点

数据能否多地域写入取决于业务的一致性要求:强一致写入跨地域会引入往返延迟,最终一致则需要事先定义冲突合并规则,并保证读路径能接受短暂旧值。另一个常被忽略的点是依赖:第三方服务、消息中间件与配置中心是否也支持多地域,否则单点依旧存在。

三种模式

模式流量形态主要挑战
主动-被动单地域承载,故障后切换切换决策与备用容量预热
主动-主动双地域同时承载数据冲突与写路径一致性
读写分离式读就近多地,写单地域写地域距离带来的延迟

基本信息

流量调度按延迟、权重或健康状态分流
数据策略单地域写入或双地域写入,取决于一致性要求
容量验证备用地域需验证能否承接全量流量
依赖检查第三方服务与基础设施是否支持多地域

典型使用场景

  • 全球用户就近访问:把读服务部署到用户所在区域
  • 地域级故障容灾:区域不可用时切换流量
  • 数据驻留合规:用户数据必须留在特定区域
  • 灾备演练:定期验证备用地域的承载能力
  • 跨区域读写分离:写集中、读分散以降低延迟
数据能否多地域写入取决于业务一致性要求;双活写冲突的合并规则必须事先定义并测试,事后再补规则通常意味着数据已经错乱且无法自动收敛。

易错点

  • 双活未定义冲突解决规则,切换或并发写入后数据错乱无法收敛
  • 备用地域容量未预热,切换后无法承接全量流量
  • 只把应用部署到多地域,数据库仍在单地域,容灾范围被高估
  • 跨地域强一致写入未评估往返延迟,写入吞吐远低于预期

数据来源与参考

  • AWS Well-Architected Framework:Reliability Pillar
  • Google SRE Book:Data Center 级容灾
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌