限流算法随笔

1.计数器法

原理:固定时长内访问量进行统计不能超过限制值,新的请求时间不在当前固定时间段时,以当前访问时间为开始时间刷新固定时间

缺点:<1>.不够平滑,如5秒内限制100次,前2秒内到达100次访问量并处理完请求,后三秒会处于空档期

           <2>.双倍访问量的风险,如5秒内限制100次,近100个请求挤压在后2秒,未超出限制,但新的时间间隔请求积压在前3秒,达到近100次,实际最高峰的5秒访问量达到了近200次,

                  未达到理想的效果。

现实场景:想象安检时,如果规定每5分钟能进10个人,就可能会出现第一个5分钟结束前涌入10人,第二个5分钟开始涌入10人,安检处无法容下近20人。

2.滑动窗口法

原理:计数法的基础上进行改进的方法。将固定时间T均分N份,得到持续T/N时长的节点,随着时间的流逝,请求到达时,判断请求时间是否在最新节点时间区间内,不在时需生成新的节

           点直到请求时间在新的节点内,且每次创建完新的节点以后如果总节点数已经达到N个, 需要踢出最老的节点将最新的节点加入,实现了一个动态滑动的效果。判断所有子节点总访

           问量是够达到限制值,如果未达到则将请求统计入最新的子节点。

优点:划分越多,限流效果越平滑。

实际场景:对上述场景做了优化,规定每5分钟能进10个人,但是安检员会每分钟根据已进入人员安检完成的情况,适量放入人员。

3.漏桶法

原理:

4.令牌桶法

原理:

posted @ 2021-12-20 17:32  不想取名007  阅读(35)  评论(0编辑  收藏  举报