常见的限流算法有两种:漏桶算法和令牌桶算法
漏桶算法思路:
水(请求)先进入到漏桶里,漏桶以一定的速度出水,当流入速度过大会直接溢出,漏桶算法能强行限制数据的传输速率。
令牌桶算法思路:
系统以恒定的速度往桶里放入令牌,而如果请求需要被处理,则从桶中获取一个令牌,当桶中没有令牌可取时,则拒绝服务。
google开源工具包Guava提供了限流工具类RateLimiter,该类基于令牌桶算法的完成限流。