标准答案
- 单活只在一个主要区域提供写服务,架构和一致性最简单,但需要可靠备份和灾难切换方案。
- 主备让备用环境保持可接管状态,重点是复制延迟、切换流程和备端容量是否足够。
- 双活通常让两个区域同时承载部分流量,需要明确哪些数据可双写、哪些必须单主,以及故障切换规则。
- 多活把写入分布到多个区域,必须设计冲突解决、数据驻留、全局身份、观测和更复杂的演练机制。
题目解析
活跃区域越多,故障域越少,但数据一致性和人力成本越高。不是所有业务都需要多活,关键是把不可接受的故障和可接受的延迟说清楚。
真正的难点不是把服务部署到多个区域,而是网络分区、重复请求、跨区延迟和恢复后数据冲突如何处理。
常见误区
- 把跨区域副本称为双活,却只有一个区域能写。
- 设计多活前没有解决数据冲突和全局唯一性。
- 只演练单区域宕机,不演练网络分区和部分依赖不可用。