美文网首页Java
【5分钟背八股】计数器算法是什么?

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

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

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

image.png

从上图我们来看,我们设置一分钟的阈值是100,在0:00到1:00内请求数是60,当到1:00时,请求数清零,从0开始计算,这时在1:00到2:00之间我们能处理的最大的请求为100,超过100个的请求,系统都拒绝。

这个算法有一个临界问题,比如在上图中,在0:00到1:00内,只在0:50有60个请求,而在1:00到2:00之间,只在1:10有60个请求,虽然在两个一分钟的时间内,都没有超过100个请求,但是在0:50到1:10这20秒内,确有120个请求,虽然在每个周期内,都没超过阈值,但是在这20秒内,已经远远超过了我们原来设置的1分钟内100个请求的阈值。

【5分钟背八股】50:计数器算法是什么? .png

推荐阅读【5分钟背八股】ZooKeeper和Reids做分布式锁的区别??

相关文章

  • 【5分钟背八股】计数器算法是什么?

    计数器算法,是指在指定的时间周期内累加访问次数,达到设定的阈值时,触发限流策略。下一个时间周期进行访问时,访问次数...

  • 高可用实践-限流算法

    限流算法 常见的限流算法有计数器算法、漏桶算法和令牌桶算法。 计数器法 计数器算法“简单粗暴”。该算法会维护一个c...

  • 面试官:限流算法有哪些?

    限流的实现算法有很多,但常见的限流算法有三种:计数器算法、漏桶算法和令牌桶算法。 一、计数器算法 计数器算法是在一...

  • 常用限流算法

    计数器算法是什么? 计数器算法,是指在指定的时间周期内累加访问次数,达到设定的阈值时,触发限流策略。下一个时间周期...

  • Sentinel算法

    一 .统计算法有哪些,分别问题是什么? 1.计数器固定窗口算法 使用计数器在周期内累加访问次数,当达到设定的限流值...

  • JVM垃圾回收算法

    判断Java中对象存活的算法 1.引用计数器算法: 引用计数器算法是给每个对象设置一个计数器,当有地方引用这个对象...

  • 分布式架构

    大流量限流/削峰 常见的限流算法 计数器算法池化资源技术的限流就是通过计数器算法来控制全局的总并发数。 令牌桶算法...

  • 《深入理解Java虚拟机》学习笔记(三)垃圾回收

    判断对象是否存活引用计数算法:为对象添加引用计数器,引用计数器+1,引用失效计数器-1,算法简单,效率高,很难解决...

  • 聊到JVM,面试官99%会问你如何判断一个对象的生死状态?

    判断对象的生死状态的算法主要有1、引用计数器算法;2、可达性分析算法。 一、引用计数器算法 引用计算器判断对象是否...

  • 第三章 垃圾收集器与内存分配策略

    对象存活判定算法 引用计数算法 原理是每个对象都有一个引用计数器,当被引用时,计数器加1,取消引用时计数器减1。计...

网友评论

    本文标题:【5分钟背八股】计数器算法是什么?

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