使用哪种限制实现?

时间:2014-01-14 15:46:44

标签: java algorithm scala akka throttling

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

到目前为止,我很想实现http://en.wikipedia.org/wiki/Token_bucket所述的令牌桶算法。在What's a good rate limiting algorithm?有与此相关的Python代码,因此应该直接实现Java / Scala版本。

Guava看起来像是http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/util/concurrent/RateLimiter.html

中描述的一个很好的实现

同样,Akka似乎使用在http://doc.akka.io/api/akka/2.1.2/index.html#akka.contrib.throttle.Throttler描述的Throttler特征来实施限制

我想实现自己的但不喜欢重新发明轮子,如果有一个解决方案已经可用。使用令牌桶算法比使用Guava&提供的选项更有优势吗?斯卡拉?

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

0 个答案:

没有答案