guava RateLimiter 限流例子
所属分类 guava
浏览量 1680
限流 RateLimiter
import java.text.SimpleDateFormat;
import java.util.Date;
import com.google.common.util.concurrent.RateLimiter;
public class RateLimiterTest {
private static final String DATEFORMAT = "yyyy.MM.dd HH:mm:ss SSS";
public static void main(String[] args) throws Exception {
// 1秒钟3个令牌
RateLimiter limiter = RateLimiter.create(3);
SimpleDateFormat sdf = new SimpleDateFormat(DATEFORMAT);
while(true){
System.out.println(limiter.tryAcquire()+","+sdf.format(new Date()));
Thread.sleep(50);
}
}
}
1秒钟 3个 令牌 ,一秒钟内 limiter.tryAcquire() 只有三次调用true
大约每隔300毫秒 ,返回一次 true
true,2020.03.08 10:56:34 482
false,2020.03.08 10:56:34 534
false,2020.03.08 10:56:34 588
false,2020.03.08 10:56:34 642
false,2020.03.08 10:56:34 693
false,2020.03.08 10:56:34 744
true,2020.03.08 10:56:34 795
false,2020.03.08 10:56:34 848
false,2020.03.08 10:56:34 900
false,2020.03.08 10:56:34 953
false,2020.03.08 10:56:35 005
false,2020.03.08 10:56:35 059
true,2020.03.08 10:56:35 109
false,2020.03.08 10:56:35 164
false,2020.03.08 10:56:35 219
false,2020.03.08 10:56:35 274
false,2020.03.08 10:56:35 326
false,2020.03.08 10:56:35 381
false,2020.03.08 10:56:35 433
true,2020.03.08 10:56:35 485
false,2020.03.08 10:56:35 540
guava简介及使用
分布式限流方案
完整代码
https://gitee.com/dyyx/demos/blob/master/guava/src/main/java/dyyx/RateLimiterTest.java
上一篇
下一篇
guava简介及使用
管理学定律
程序员的爱情
guava cache 例子
2019容器使用情况
银行业务简介