java限流-令牌桶的谷歌guava实现

应用:
http://blog.csdn.net/cloud_ll/article/details/43602325

类解释:
http://ifeve.com/guava-ratelimiter/

算法介绍:
https://github.com/springside/springside4/wiki/Rate-Limiter

关键介绍:
RateLimiter类似于JDK的信号量Semphore,他用来限制对资源并发访问的线程数。

RateLimiter limiter = RateLimiter.create(4.0); //每秒不超过4个任务被提交
limiter.acquire();  //请求RateLimiter, 超过permits会被阻塞
executor.submit(runnable); //提交任务
也可以以非阻塞的形式来使用:

If(limiter.tryAcquire()){ //未请求到limiter则立即返回false
    doSomething();
}else{
    doSomethingElse();
}

非常感谢上面的链接


原文出处:/show_1EFCiZvJ4mC.html