使用哪种限制实现?

blu*_*sky 7 java algorithm scala throttling akka

我正在实施限制机制来限制发送到服务器的Web请求数量.如果请求的提交太多,则额外请求将排队,直到资源可用.似乎有很多限制选项,我不知道选择哪一个.

到目前为止,我很想实现http://en.wikipedia.org/wiki/Token_bucket中描述的令牌桶算法.在什么是一个好的速率限制算法上有与此相关的Python代码所以应该直截了当地实现Java/Scala版本.

Guava看起来像http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/util/concurrent/RateLimiter.html中描述的一个很好的实现.

此外,Akka似乎使用Throttler特征实现限制:http://doc.akka.io/api/akka/2.1.2/index.html#akka.contrib.throttle.Throttler

我想实现自己的但不喜欢重新发明轮子,如果有一个解决方案已经可用.使用令牌桶算法比使用Guava和Scala已经提供的选项有什么好处?

最推荐的三个选项中有哪些?