Skip to content
进阶

一句话答案

五种限流算法:计数器、固定窗口、滑动窗口、漏桶(匀速)、令牌桶(允许突发,最灵活),Sentinel 用滑动窗口。

核心要点
算法特点
计数器简单但有边界突发
固定窗口临界点翻倍问题
滑动窗口解决临界问题
漏桶匀速流出
令牌桶允许突发(Guava RateLimiter)

生产: Sentinel(滑动窗口) / Guava RateLimiter(令牌桶) / Nginx(漏桶)

追问与易错

追问方向:

  • 令牌桶和漏桶区别?
  • Sentinel 用哪种算法?
  • 分布式限流怎么做?

易错点:

  • ❌ 固定窗口没问题——有临界点翻倍问题
  • ❌ 漏桶最好——不允许突发某些场景不适合

💡 记忆锚点

漏桶vs令牌桶:漏桶像水龙头匀速滴水(无论水压多大出水恒定,适合匀速场景),令牌桶像发门票(攒够票可以一次性进一批人,允许突发流量)。固定窗口的坑:两个窗口交界处可能瞬间通过两倍流量,滑动窗口解决这个问题。生产用Sentinel(滑动窗口)或Guava(令牌桶)。