
通常我们可以通过限流算法达到限制接口调用次数,比如计数器法、滑动窗口法、漏桶算法、令牌桶算法,这里我们就用令牌桶算法举例。
令牌桶算法,我们可以看做有一个桶,桶里面有 N 个令牌,并且系统会以一个恒定的速度往桶里投放令牌,每次处理之前先要获取令牌,如果获取不到的话,就拒绝服务;在这里我们使用 Google 出品的 Guava 工具库,里面提供了一个开箱即用的令牌桶 RateLimiter。

通常我们可以通过限流算法达到限制接口调用次数,比如计数器法、滑动窗口法、漏桶算法、令牌桶算法,这里我们就用令牌桶算法举例。
令牌桶算法,我们可以看做有一个桶,桶里面有 N 个令牌,并且系统会以一个恒定的速度往桶里投放令牌,每次处理之前先要获取令牌,如果获取不到的话,就拒绝服务;在这里我们使用 Google 出品的 Guava 工具库,里面提供了一个开箱即用的令牌桶 RateLimiter。