面试知识库
进阶

熔断降级原理#

一句话答案#

熔断器三态:Closed(正常统计)→Open(错误率超阈值,快速失败)→Half-Open(试探恢复),防止故障级联。

核心要点

熔断器状态机:

  • Closed:正常放行,统计错误率
  • Open:错误率超阈值 → 直接拒绝(快速失败)
  • Half-Open:超时后放行少量请求试探 → 成功关闭 / 失败继续打开

降级策略: 返回默认值 / 返回缓存 / 走备用逻辑

面试回答(2分钟版)

熔断和降级是微服务防止级联故障的核心机制。熔断器本质是一个状态机,有三种状态:Closed 状态下正常放行请求并统计错误率;当错误率超过阈值比如 50% 时跳到 Open 状态,此时所有请求直接快速失败不再调用下游,避免故障扩散;经过一段冷却时间后进入 Half-Open 状态,放行少量请求试探下游是否恢复,成功则回到 Closed,失败则继续 Open。降级是熔断触发后的兜底策略,常见有三种:返回默认值比如推荐服务挂了返回热门榜单、返回缓存数据、或者直接关闭非核心功能只保核心链路。熔断和限流容易混淆但目的不同:限流是保护自己不被流量打垮,是入口防护;熔断是保护调用方不被故障下游拖垮,是出口防护。生产中主要用 Sentinel 来实现,它支持慢调用比例、异常比例、异常数三种熔断策略,还自带 Dashboard 可以动态调整规则。

追问与易错

追问方向:

  • “熔断和限流区别?”→ 限流是保护自己不被流量打垮(入口防护,控制请求速率),熔断是保护调用方不被故障下游拖垮(出口防护,快速失败避免级联)
  • “降级策略有哪些?”→ 返回默认值(如推荐服务挂了返回热门榜单)、返回缓存数据、关闭非核心功能只保核心链路、排队等待(流量削峰)
  • “Half-Open 失败怎么办?”→ 重新回到 Open 状态继续熔断,等待下一个冷却周期后再次进入 Half-Open 试探,可配置允许通过的试探请求数量

易错点:

  • ❌ 熔断就是不让请求通过——Open 是快速失败返回兜底值
  • ❌ 混淆熔断和限流的适用场景