软件技术 · 知识点深化 · 分布式系统
熔断限流:防止级联故障与服务雪崩
下游服务挂了,调用方还一直打,线程全阻塞导致自己也挂——这就是级联故障。熔断像保险丝,下游连续失败就跳闸快速失败;限流像水闸,超过阈值就拒绝。这一页讲透 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 题
▍中档 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 天 | 合书口述熔断限流区别 | 不看资料 |
← 返回软件技术总览