
1) 【一句话结论】:采用多区域多活架构,结合MySQL跨区域强同步(GTID+binlog实时同步)与异步复制(分业务选择),网络层(VPC延迟超3秒)+应用层(数据库查询1秒)双健康检查,通过负载均衡器秒级切换流量,确保区域故障时服务不中断,数据一致性满足业务要求。
2) 【原理/概念讲解】:老师解释关键概念:
3) 【对比与适用场景】:
| 架构模式 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 多活(Active-Active) | 多区域同时提供服务 | 实时同步数据,所有区域在线 | 电商、社交(实时性高) | 数据冲突处理,成本高 |
| 热备(Active-Standby) | 主区域服务,备区域待命 | 备区域数据实时同步,切换延迟低 | 金融、政务(切换敏感) | 资源利用率低,成本高 |
| 冷备(Standby) | 备区域定期同步 | 切换延迟高,数据延迟大 | 非核心系统(成本敏感) | 恢复时间长,数据一致性弱 |
| 数据同步策略 | 强一致性(金融) | 事务级同步,GTID+binlog,延迟低 | 金融系统(支付、交易) | 成本高,延迟约50ms |
| 数据同步策略 | 最终一致性(电商) | 异步复制,binlog延迟,通过补偿修复 | 电商、社交(用户信息更新) | 延迟100-200ms,需补偿 |
4) 【示例】:假设用户服务部署在华北(Region-A)和华南(Region-B),使用RDS跨区域强同步(GTID模式,binlog实时同步),健康检查配置:
upstream user_service {
server 192.168.1.10:3306 weight=1; # Region-A
server 192.168.2.10:3306 weight=1; # Region-B
health_check {
interval 1s;
timeout 1s;
type tcp;
port 3306;
send "SELECT 1";
}
}
当Region-A网络故障(延迟超3秒),CLB检测到后,将流量切换到Region-B,用户请求正常访问。
5) 【面试口播版答案】:面试官您好,针对区域故障导致服务中断的问题,我设计的容灾方案核心是构建多区域多活架构,通过双维度健康检查(网络层+应用层)、分业务场景的数据同步策略(强/最终一致性),以及秒级流量切换机制,确保区域故障时服务不中断。具体来说:1. 多区域部署:在华北、华南等不同地理区域部署服务实例,每个区域独立运行,互为备份。2. 数据同步:金融系统采用MySQL跨区域强同步(配置GTID模式,binlog实时同步,事务级复制),电商系统采用异步复制(容忍短暂不一致)。3. 健康检查:网络层通过VPC延迟监控(超时3秒标记故障),应用层每秒查询数据库“SELECT 1”,确保故障区域被准确识别。4. 流量切换:通过负载均衡器(如CLB)的秒级健康检查,将流量切换到健康区域,切换延迟控制在1秒内。5. 资源优化:热备模式下,通过按需缩放备区域资源,降低闲置成本。
6) 【追问清单】:
7) 【常见坑/雷区】: