
1) 【一句话结论】采用“两地三中心”主备+多活混合架构,通过Debezium CDC异步日志复制实现数据同步,结合心跳检测与自动化故障切换,确保PMIS/BIM系统在极端故障下RTO≤30分钟、RPO≤5分钟,保障业务连续性。
2) 【原理/概念讲解】老师讲解:灾备的核心是业务连续性,关键指标RTO(恢复时间目标,系统故障到恢复的时间,PMIS/BIM核心业务需≤30分钟避免项目延误)和RPO(恢复点目标,数据丢失最大时间窗口,需≤5分钟避免数据丢失)。架构分两类:主备架构(一主一备,备系统冷备,故障时切换,切换时间长但成本低)和多活架构(两地同时运行,互为备份,实时同步,切换快但成本高)。数据同步策略选异步日志复制(减少主系统压力,延迟≤RPO),故障切换通过心跳检测(主系统状态)和日志校验(数据一致性)自动触发。类比:像人的“双系统”,主系统正常工作,备系统像备用电池,主系统故障时自动接管,保证设备继续运行。
3) 【对比与适用场景】
| 架构类型 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 主备架构 | 一主一备,主系统运行,备系统冷备(不实时同步) | 备系统不实时同步,故障时切换,切换时间30-60分钟,成本较低 | 业务对连续性要求高但预算有限(如中小型基建项目) | 切换时可能数据丢失,需定期测试(每月演练) |
| 多活架构 | 两地或多地同时运行,互为备份(实时同步) | 实时同步,故障时自动切换,切换时间<5分钟,成本较高(双数据中心) | 业务对实时性要求高(如BIM协同、项目进度实时更新) | 需要高带宽(千兆以上),需高可用网络 |
4) 【示例】
伪代码示例(故障检测与切换流程):
// 故障检测模块
function checkHeartbeat():
if 主系统心跳超时(如10秒无响应):
return "主系统故障"
else:
return "正常"
// 数据同步模块(Debezium CDC异步日志复制)
function syncData():
while True:
从主系统数据库(如MySQL)拉取变更日志(如SQL INSERT/UPDATE)
将日志写入灾备中心数据库(异步写入,延迟≤5分钟)
等待日志提交确认(确保数据最终一致性)
// 故障切换流程
if checkHeartbeat() == "主系统故障":
1. 启动故障切换脚本:更新负载均衡器(如Nginx)指向灾备中心IP
2. 启动DNS解析更新(如通过Route53的健康检查)
3. 启动业务恢复监控(如检查应用日志、数据库连接)
4. 通知运维人员(短信/邮件),完成切换(<30分钟内)
5) 【面试口播版答案】
面试官您好,针对PMIS或BIM系统的高可用灾备,我设计的是基于“两地三中心”的主备+多活混合架构。核心是通过Debezium CDC异步日志复制实现数据同步,结合心跳检测和自动化故障切换,确保系统在极端故障下RTO≤30分钟、RPO≤5分钟。具体来说,主数据中心(如北京)和灾备中心(如成都)同时运行,主系统实时同步数据到灾备中心,当主系统因自然灾害或硬件故障停机时,通过心跳检测和日志校验自动切换到灾备中心,切换时间通过预置的负载均衡和DNS快速完成,保证业务连续性。
6) 【追问清单】
7) 【常见坑/雷区】