高并发下的四种限流方法

x33g5p2x  于2022-07-10 转载在 其他  
字(0.5k)|赞(0)|评价(0)|浏览(279)

高并发场景下,需要将用户的流量进行限流

现在整理四种限流的方法:

计数器,也就是固定窗口法

计数器算法是使用计数器在周期内累加访问次数,当达到设定的限流值时,触发限流策略。下一个周期开始时,进行清零,重新计数。

缺点:当出现临界值的时候,会出现1秒钟超过上线的问题。

滑动窗口算法

滑动窗口算法是将时间周期分为N个小周期,分别记录每个小周期内访问次数,并且根据时间滑动删除过期的小周期。

如下图,假设时间周期为1min,将1min再分为2个小周期,统计每个小周期的访问数量,则可以看到,第一个时间周期内,访问数量为75,第二个时间周期内,访问数量为100,超过100的访问则被限流掉了

漏桶算法

漏桶算法是访问请求到达时直接放入漏桶,如当前容量已达到上限(限流值),则进行丢弃(触发限流策略)。漏桶以固定的速率进行释放访问请求(即请求通过),直到漏桶为空。

令牌桶算法

令牌桶算法是程序以r(r=时间周期/限流值)的速度向令牌桶中增加令牌,直到令牌桶满,请求到达时向令牌桶请求令牌,如获取到令牌则通过请求,否则触发限流策略

参考文献:
https://mp.weixin.qq.com/s/fdQ6NUjvXyNvLIa2g7v3RA

相关文章