C17

限流算法三兄弟

漏桶匀速保下游、令牌桶攒牌容突发、固定窗口怕临界——同一条时间轴上跑给你看

开始讲解

0 / 0

交互实验

请求时间轴(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。

真题演练

查看解析