51mee - AI智能招聘平台Logo
模拟面试题目大全招聘中心会员专区

设计一个交易系统的灾备方案,包括同城灾备(如RPO/RTO)和异地灾备(如跨城市),并说明切换流程和验证机制。

上海证券交易所A06难度:困难

答案

1) 【一句话结论】交易系统灾备方案需结合同城(低RPO/RTO,实时同步)和异地(高RPO/RTO,定时同步)灾备,通过数据同步、切换流程及验证机制,平衡数据一致性、系统可用性与成本,保障业务连续性。

2) 【原理/概念讲解】灾备的核心是故障时快速恢复业务。

  • 同城灾备:部署在同一城市,通过数据库实时同步(如MySQL binlog复制、Oracle GoldenGate)或消息队列(如Kafka)同步数据,RPO(数据丢失量)极低(0-1分钟),RTO(恢复时间)短(秒级-分钟级),类比“两个办公室实时同步,故障时立即接管”。
  • 异地灾备:跨城市部署,通过定时同步(如每日凌晨全量备份+增量同步,如RSM、Terraform脚本),RPO较高(5-30分钟),RTO较长(小时级-天级),类比“两个城市办公室每日同步,故障时需一定时间恢复”。

3) 【对比与适用场景】

维度同城灾备异地灾备
定义同一城市部署的灾备系统跨城市部署的灾备系统
RPO极低(0-1分钟,实时同步)较高(5-30分钟,定时同步)
RTO短(秒级-分钟级,实时切换)长(小时级-天级,定时切换)
数据同步实时同步(数据库binlog、消息队列)定时同步(全量+增量备份)
适用场景高频交易(如秒级响应)中低频交易(如分钟级响应)
注意点网络延迟、同步延迟可能导致数据不一致;成本较高带宽、时延、数据传输成本较高;切换时间较长

4) 【示例】

  • 同城灾备实时同步伪代码:
def sync_data_from_master():
    while True:
        try:
            with DatabaseConnection('master'):
                changes = fetch_binlog_changes()
            with DatabaseConnection('standby'):
                apply_changes(changes)
        except Exception as e:
            log_error(e)
            # 重试逻辑
  • 切换流程伪代码:
def failover():
    if not is_master_available():
        if check_data_consistency():
            switch_to_standby()
            notify_stakeholders()

5) 【面试口播版答案】(约90秒)
“面试官您好,交易系统灾备方案需分同城和异地两部分。同城灾备采用实时数据同步(如数据库binlog复制),RPO接近0,RTO秒级,适合高频交易;异地灾备用定时同步(每日凌晨全量备份+增量),RPO分钟级,用于跨城市灾难恢复。切换流程是:主库故障时,先校验灾备库数据一致性(比对关键表数据),确认后切换应用连接,再通知各方。验证机制包括数据一致性检查(定期比对主备库)、业务压力测试(模拟高并发切换)、灾备系统可用性测试(定期演练)。核心是通过不同方案组合,平衡数据一致性和恢复速度,保障系统高可用。”

6) 【追问清单】

  • 问题1:同城灾备切换时网络延迟导致数据不一致,如何处理?
    回答要点:采用异步同步+补偿机制(如消息队列最终一致性),或设置数据校验阈值,不一致时回滚/人工干预。
  • 问题2:异地灾备的带宽和时延如何影响RTO?
    回答要点:带宽不足延长同步时间,增加RTO;时延导致数据延迟,影响RPO,需评估网络条件,选择压缩/分片传输策略。
  • 问题3:灾备系统与生产系统不一致时,如何保证切换后业务正常?
    回答要点:灾备系统保持与生产系统相同配置/数据版本,定期同步(同城实时,异地定时),切换前验证数据一致性。
  • 问题4:灾备切换后如何回切?
    回答要点:设置回切条件(主库恢复后,灾备库数据与主库一致),通过自动化脚本/人工触发,回切前验证数据一致性。
  • 问题5:如何处理灾备系统中的数据冗余?
    回答要点:采用数据去重/版本控制(如数据库行级锁、事务日志),定期清理过期数据。

7) 【常见坑/雷区】

  • 坑1:只关注RTO,忽略RPO,导致数据丢失过多。
  • 坑2:灾备切换验证不充分,切换后高并发崩溃。
  • 坑3:异地灾备时区问题影响RPO计算。
  • 坑4:灾备系统与生产系统不一致,切换失败。
  • 坑5:网络故障导致同步失败,未设容错机制。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1