跳到主要内容

多活与容灾架构

容灾架构等级

方案RPORTO成本适用
冷备小时级小时级非核心业务
温备(主从)分钟级分钟级一般业务
同城双活秒级秒级核心业务
两地三中心接近 0分钟级很高金融/支付
RPO 与 RTO
  • RPO(恢复点目标):能承受丢失多少数据
  • RTO(恢复时间目标):从故障到恢复服务的时间

同城双活关键设计

组件方案
流量DNS 轮询 / GSLB / 云 LB 多可用区
应用无状态设计,双机房部署
数据库MySQL Group Replication / PG 同步复制
缓存Redis Cluster 跨 AZ
消息队列Kafka MirrorMaker / 多 AZ 部署

常见面试问题

Q1: 同城双活最大的挑战是什么?

答案

数据一致性。两个机房同时写同一份数据时如何保证一致:

  1. 数据分片:按用户/业务维度分片到不同机房,每个数据只在一个机房写
  2. 强一致同步:数据库同步复制(牺牲写延迟换一致性)
  3. 最终一致:允许短暂不一致,通过对账/补偿机制修复

实践中最常用方案 1(分片路由),避免跨机房写冲突。

相关链接