常见限流算法
常见流量场景
- 业务流量:正常用户使用流量
- 突发流量:某些特定时间所产生的流量,例如双11
- 恶意流量:服务器被攻击所产生的流量
常见限流算法
- 基于计数器
- 基于滑动窗口
- 漏桶
- 令牌桶
1、基于计数器
对于计数器算法,每隔固定一段时间限流固定流量,例如上图,2-3秒内限流500,4-5秒内限流500。但是3-4秒内可以拥有流量1000。导致可能会出现这种边界问题。边界之间流量值超过限定的流量
2、基于滑动窗口
滑动窗口则是将时间进行滑动,第一次时间限制1-2秒,第二次是2-3秒,第三次是3-4秒,这样间隔粒度更小,是能解决临界问题,如果粒度够小的话。
3、基于漏桶
漏桶算法,桶的大小一定,流出速度一定,如果流量突发很大,就会导致流量被抛弃。对突发流浪处理不是很好。
4、基于令牌桶
对于令牌桶,则是对桶算法的升级。对进去的流量需要去拿一个令牌,如果令牌被拿完了。就拒绝处理。请求被处理完成后会将令牌放入桶中。这种对于突发流量兼容也是不错的。只要令牌够的话,是能处理的。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 🍍Blog!