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