← 返回软件技术总览 软件技术 · 知识点深化 · 熔断限流:防止级联故障与服务雪崩
软件技术 · 知识点深化 · 分布式系统

熔断限流:防止级联故障与服务雪崩

下游服务挂了,调用方还一直打,线程全阻塞导致自己也挂——这就是级联故障。熔断像保险丝,下游连续失败就跳闸快速失败;限流像水闸,超过阈值就拒绝。这一页讲透 Sentinel/Hystrix。

① 怎么学(4 步走,约 65 分钟)

先建立直觉再抠细节,按这四步走最稳:

1看图建立直觉(10 分钟)
读②③:先在脑子里画出本课核心结构图。
2记完整体系(15 分钟)
读④:把对比表和公式看懂,不要急着背。
3跟例题走一遍(20 分钟)
精读⑤:看三个例题怎么用知识点解题。
4刷题纠错(剩余时间)
做⑦⑩,错题回⑥诊断。
本课小目标学完你要能:① 解释熔断三态;② 对比熔断与限流;③ 说常见限流算法;④ 配置降级。

② 一图看懂:熔断限流全景

稳定性 熔断器 失败率高跳闸 限流 超阈值拒绝 降级 兜底返回 隔离 线程池/信号量 应用:下游保护 高并发后端 易错:下游挂了调用方跟着挂 级联故障
读法:中心是本课主题,四条分支展开核心维度,下方是典型应用与高频易错点。

③ 本质直觉:熔断限流就是"保险丝+水闸"

熔断器像家里的保险丝:下游服务连续失败,说明它可能挂了,再打也是浪费资源。直接跳闸(快速失败),过一会再试探半开。

三态:关闭(正常)→ 打开(失败率超阈值,快速失败)→ 半开(放几个请求试探,成功就关,失败再开)。

限流像水闸:一秒只能过 1000 请求,多了拒绝或排队。保护系统不被打垮。

降级:被限流或熔断时返回兜底数据(如默认值、缓存),不让用户看到报错。

关闭正常调用 打开快速失败 半开试探 失败率超阈值->打开,超时后半开放行试探
熔断 vs 限流熔断是保护下游(下游挂了别打);限流是保护自己(自己扛不住别接)。方向不同。

④ 完整知识体系

限流算法对比

算法原理优缺点
固定窗口单位时间计数简单但临界突刺
滑动窗口窗口滑动更平滑稍复杂
漏桶恒定速率流出平滑但无法应对突发
令牌桶按速率发令牌允许突发
熔断阈值错误率>50% 或慢调用比例高,打开熔断
半开恢复等待窗口期后放少量请求,成功则关闭

Sentinel vs Hystrix

Hystrix 已停更。Sentinel 阿里开源,支持限流、熔断、降级、系统保护,控制台可视化。

⑤ 应用场景与例题

例1 商品详情页调推荐服务超时
熔断器打开,推荐失败时降级返回默认推荐(如热销商品)。商品页正常展示。
例2 秒杀 1 万 QPS 系统只能扛 2000
限流令牌桶 2000/s,多余请求返回"排队中"。
例3 限流算法哪个允许突发?
令牌桶:桶里攒令牌,突发时一次性消耗,允许短时突发。漏桶恒定速率不允许。
做题心法熔断保下游,限流保自己,降级给用户兜底。

⑥ 高频错误诊断(4 条)

错误1:下游挂了还一直重试线程阻塞级联故障,必须熔断。
错误2:固定窗口临界突刺窗口交界瞬间双倍流量,用滑动窗口。
错误3:熔断后不降级用户看到报错,要返回兜底。
错误4:限流阈值拍脑袋压测确定,不要凭感觉。

⑦ 考点真题演练(5 题)

考点分布

考法出题形式应对
熔断问三态关闭/打开/半开
限流问算法令牌桶/漏桶
目的问熔断保护谁下游
降级问被拒时怎样返回兜底

真题basic1. 熔断器的三个状态是?

真题mid2. 允许突发流量的限流算法是?

真题mid3. 熔断主要保护?

真题hard4. 熔断打开后如何恢复?

真题hard5. 被限流后应该?

⑧ 必背知识点卡

熔断:关闭-打开-半开 保下游
限流:令牌桶允许突发 保自己
降级:兜底返回默认值
隔离:线程池/信号量隔离下游调用
Sentinel:阿里开源,可视化 Hystrix 停更
阈值:压测确定,别拍脑袋
级联故障:下游挂了调用方跟着挂 必须熔断

⑨ 动手输出:设计秒杀保护方案

场景:秒杀 1 万 QPS,后端只能扛 2000。
① 限流:网关令牌桶 2000/s。
② 熔断:库存服务失败率高时熔断。
③ 降级:被限流返回"排队中"页。
④ 隔离:下单独立线程池,不拖垮其他接口。
⑤ 监控:限流数、熔断状态告警。
口述思路限流保自己,熔断保下游,降级兜底用户。

⑩ 分层练习(基础 + 中档 + 拔高)

▍基础 6 题

基础1熔断器三态?
关闭、打开、半开。
基础2限流保护谁?
自己。
基础3熔断保护谁?
下游。
基础4允许突发的限流算法?
令牌桶。
基础5被限流怎么办?
降级兜底。
基础6Sentinel 是谁开源的?
阿里。

▍中档 5 题

中档1漏桶和令牌桶区别?
漏桶恒定流出;令牌桶攒令牌允许突发。
中档2半开状态做什么?
放少量请求试探下游是否恢复。
中档3为什么固定窗口临界突刺?
窗口交界可能过双倍流量。
中档4线程池隔离和信号量隔离区别?
线程池独立线程;信号量限制并发数。
中档5Hystrix 现状?
已停更,用 Sentinel。

▍拔高 5 题

拔高1熔断触发条件?
错误率或慢调用比例超阈值。
拔高2为什么熔断要半开?
直接关可能下游还没恢复,直接开又影响。
拔高3系统自适应限流怎么回事?
根据系统 Load/CPU 自动调整阈值。
拔高4降级和熔断关系?
熔断触发后执行降级逻辑。
拔高5为什么不能盲目重试?
重试放大流量,加剧故障。

⑪ 记忆口诀 + 7 天复习计划

三句口诀① 熔断三态关开半,保护下游别硬打。② 限流令牌桶允许突发,保护自己别接爆。③ 降级兜底用户,隔离互不影响。
天任务自检
第 1 天读②③,画熔断状态机三态说清
第 2 天背限流算法 + 基础 6 题算法区别
第 3 天做中档 5 题,设计秒杀保护步骤对
第 4 天做拔高 5 题,解释半开为什么状态转换
第 5 天做⑦真题 5 题限时每题 2 分钟
第 6-7 天合书口述熔断限流区别不看资料

← 返回软件技术总览