【阿里巴巴】限流算法之计数器算法(Java实现)

【【阿里巴巴】限流算法之计数器算法(Java实现)】
【阿里巴巴】限流算法之计数器算法(Java实现)
文章图片
【阿里巴巴】限流算法之计数器算法(Java实现)

限流算法之计数器算法(Java实现)
在开发高并发系统时 , 很多手段来保护系统 , 如缓存、降级和限流等 。 什么是限流呢?顾名思义 , 限流就是限制流量 。 通过限流 , 我们可以很好地控制系统的qps , 从而达到保护系统的目的 。 限流的目的通过对并发访问进行限速 , 一旦达到一定的速率就可以拒绝服务、排队等待、降级等 。
限流算法最简单的实现就是计数器算法(其他还有令牌桶和漏桶算法)
计数器算法是限流算法里最简单也是最容易实现的一种算法 。 比如我们限制一个接口每分钟调用不能超过1000次 , 我们可以这样设计 , 定义2个变量 , 一个是访问次数 , 一个是记录访问次数计算的开始时间 , 如果记录时间和当前时间比较大于1分钟 , 则重新计时 , 如果在一分钟以内 , 我们把访问次数加一 。
下面是个简单的示意图
示意图
说的再多 , 不如写点代码 。
计数器法
后续介绍令牌桶和漏桶算法 , 敬请期待 ,