美文网首页Java
【5分钟背八股】滑动时间窗口算法是什么?

【5分钟背八股】滑动时间窗口算法是什么?

作者: 废柴程序员 | 来源:发表于2022-06-14 19:22 被阅读0次

    计数器算法,是指在指定的时间周期内累加访问次数,达到设定的阈值时,触发限流策略。下一个时间周期进行访问时,访问次数清零。此算法无论在单机还是分布式环境下实现都非常简单,使用redis的incr原子自增性,再结合key的过期时间,即可轻松实现。


    image.png

    在上图中,假设我们设置一分钟的请求阈值是100,我们将一分钟拆分成4个小时间窗口,这样,每个小的时间窗口只能处理25个请求,我们用虚线方框表示滑动时间窗口,当前窗口的大小是2,也就是在窗口内最多能处理50个请求。随着时间的推移,滑动窗口也随着时间往前移动,比如上图开始时,窗口是0:00到0:30的这个范围,过了15秒后,窗口是0:15到0:45的这个范围,窗口中的请求重新清零,这样就很好的解决了计数器算法的临界值问题。

    在滑动时间窗口算法中,我们的小窗口划分的越多,滑动窗口的滚动就越平滑,限流的统计就会越精确。

    【5分钟背八股】52:滑动时间窗口算法是什么?.png

    推荐阅读【5分钟背八股】计数器算法是什么?

    相关文章

      网友评论

        本文标题:【5分钟背八股】滑动时间窗口算法是什么?

        本文链接:https://www.haomeiwen.com/subject/adnzmrtx.html