C17
限流算法三兄弟
漏桶匀速保下游、令牌桶攒牌容突发、固定窗口怕临界——同一条时间轴上跑给你看
开始讲解
交互实验
请求时间轴(24 tick,紫底为突发窗口,数字 = 该 tick 到达数;白框 = 当前进度)
固定窗口计数
—
漏桶 Leaky Bucket
—
令牌桶 Token Bucket
—
✓ = 本 tick 放行 · ✗ = 本 tick 拒绝(漏桶「拒绝」指入桶即被丢弃;放行 = 已流出处理)
核心思想
- 「允许突发」= 令牌桶:恒速发牌 + 桶攒牌,突发一次性消耗(2021-11 原题)。
- 漏桶输出最平滑但不容突发——保护脆弱下游;Nginx limit_req 是它。
- 固定窗口怕临界:窗口交界可能放过 2×limit;滑动窗口切小窗缓解(2024-11 原题)。
- 产品映射:Nginx=漏桶、Guava=令牌桶、Sentinel=滑动窗口+令牌桶、Redis+Lua=分布式。
- 答题组合拳:网关层令牌桶抗突发 + 下游漏桶匀速 + 超量快速失败返回 429/503。
真题演练
查看解析
深化笔记:18 · 微服务与分布式深化 §E 限流算法 (四算法对比、漏桶 vs 令牌桶高频 callout、产品实现映射)。反查:21 · 考点反查索引。