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

描述你参与的一个高可用系统设计,如何处理生产环境中的故障(如数据库主从切换、服务熔断),并分享实际故障处理案例(例如某次数据库连接中断,如何快速恢复,采取了哪些措施)。请说明系统如何保证7x24小时稳定运行。

9377后端开发难度:中等

答案

1) 【一句话结论】:通过数据库主从切换、服务熔断、重试与降级等多级容错机制,结合实时监控与自动化告警,实现故障快速检测与恢复,确保系统7x24高可用稳定运行。

2) 【原理/概念讲解】:高可用系统设计核心是“容错+恢复”,关键机制包括:

  • 数据库主从复制:主库负责写,从库同步数据。主故障时从库自动切换为主(同步主从需延迟,异步无延迟但数据一致性差),像“主仆”系统,主故障时仆立刻接管。
  • 服务熔断:当服务调用超时或失败率超过阈值,熔断器断开调用,避免级联故障,像“保险丝”,过载时断开保护系统。
  • 故障检测:通过心跳、延迟检测判断服务/数据库状态,快速定位故障。
  • 恢复机制:主从切换后自动重试,熔断器熔断后逐渐恢复(半开状态,逐步放行请求)。

3) 【对比与适用场景】:

对比项数据库主从切换(故障切换)服务熔断(故障隔离)
定义主库故障时从库接管,恢复后切回主超时/失败率过高时断开调用,后续重试
特性侧重数据一致性(同步主从)或可用性(异步)侧重系统稳定性,避免级联故障
使用场景数据库高可用,主故障时快速恢复服务间调用,高并发下防止雪崩
注意点同步主从延迟高,异步可能数据不一致阈值设置需平衡可用性与可靠性

4) 【示例】:假设某次数据库连接中断案例。系统设计:数据库同步主从(延迟约1秒),服务调用时设置熔断(超时500ms,失败率阈值50%)。故障过程:某时刻数据库主库连接中断,系统通过心跳检测到主库不可用,从库1秒内切换为主库,同时服务熔断器检测到调用数据库超时,断开调用,返回缓存数据。恢复:主库故障修复后,从库切回从,服务熔断器逐渐恢复调用(半开状态,每秒放行1%请求)。

伪代码(故障检测与切换):

def check_db_connection():
    try:
        connect_master()
        return "master_ok"
    except Exception as e:
        connect_slave()
        return "slave_ok"

def switch_master():
    if check_db_connection() == "slave_ok":
        update_config(master_ip="slave_ip")
        notify_services()
        return True
    return False

5) 【面试口播版答案】:我参与过的高可用系统设计,核心是通过数据库主从切换、服务熔断、重试与降级机制,结合实时监控,确保7x24稳定。比如某次数据库主库连接中断,系统通过心跳检测到主库不可用,从库1秒内切换为主库,同时服务熔断器断开调用,返回缓存数据,故障后1分钟恢复,未影响业务。具体来说,数据库采用同步主从(延迟1秒),服务调用时设置熔断(超时500ms,失败率50%),监控指标包括数据库延迟、调用成功率,告警触发后自动切换,保证系统稳定。

6) 【追问清单】:

  • 问:主从切换的延迟对业务影响?答:同步主从切换延迟约1秒,但通过熔断和降级,用户感知延迟极低。
  • 问:服务熔断的阈值如何设置?答:根据历史数据,超时时间设为500ms,失败率阈值50%,平衡可用性与可靠性。
  • 问:监控哪些指标?答:数据库延迟、调用成功率、熔断器状态、系统负载,通过Prometheus+Grafana监控。
  • 问:故障恢复流程是否自动化?答:是的,通过脚本自动切换主从,熔断器半开状态自动恢复,减少人工干预。
  • 问:如何保证数据一致性?答:数据库主从同步,写操作先主库,从库延迟同步,读操作优先从库,减少主库压力。

7) 【常见坑/雷区】:

  • 坑1:主从同步导致延迟过高,影响写性能,需评估业务对延迟的容忍度。
  • 雷区2:熔断阈值设置过松,导致正常波动触发熔断,影响可用性。
  • 坑3:监控指标不全面,未覆盖数据库连接数、网络延迟等,导致故障未及时检测。
  • 雷区4:故障恢复流程依赖人工,导致恢复时间过长,应自动化。
  • 坑5:未考虑多级故障,如主从切换后从库故障,需有备用从库或多主架构。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1