1.添加依赖
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
</dependency>
2.每秒只发出的令牌
double rate = 2000;
/*
创建一个具有指定稳定吞吐量的RateLimiter,
以“每秒允许”(通常称为QPS,每秒查询)和一个预热期
(在此期间,RateLimiter平稳地提高其速率,直到在
周期结束时达到其最大速率(只要有足够的请求使其饱和)。
*/
RateLimiter rateLimiter = RateLimiter.create(rate);
3.在程序中阻塞
/*
从这个RateLimiter获取给定数量的许可,
阻塞直到请求被授予。
如果有的话,返回睡眠时间。
该方法等价于acquire(1)。
*/
rateLimiter.acquire();
/*
从这个RateLimiter获取给定数量的许可,
阻塞直到请求被授予。
参数:获得许可证的数量
*/
rateLimiter.acquire(1);