你知道有哪些常用的限流算法吗,分别有什么优缺点呢?
计数器 / 固定窗口算法
a. 实现很简单,通过 Redis 的 inc 自增命令就可以实现了
b. 存在“毛刺现象”,如我们一分钟内限流100次,在持续性大流量下,很有可能出现这种情况,第一秒钟解收了100个请求,后面59秒都是拒绝状态,61秒又接收了100个请求,后面59持续拒绝。。。也就是该算法无法均匀的限制流量
c. 在两个时间窗口的临界点,存在《临界问题》
滑动窗口算法
a. 将原本的粗粒度细化,如将1分钟限制100请求切分成6个10秒钟的小窗口
b. 可以很大程度的解决固定窗口的《临界问题》
原创
2023-12-07 10:36:10 ·
133 阅读 ·
0 评论