CS-Notes 学习笔记
Java 后端 · 系统设计

常用的限流算法有哪些?分别有什么特点?

先自己想一想,再看参考要点

参考要点

  • 固定窗口:每个窗口一个计数器,最简单,但窗口边界处最多放行 2 倍
  • 滑动窗口:统计往前一个窗口内的请求,精确,但每个请求存一条记录
  • 漏桶:排队后按固定速率处理,最平滑,突发要等待,适合保护处理能力固定的下游
  • 令牌桶:按固定速率放令牌,允许不超过桶容量的突发,Guava RateLimiter 按这种方式实现,它还让当前请求先通过、把欠下的等待算到下一个请求上
在学习站中自测这道题看这道题所在的一天

学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。