Java 要使用哪个节流实现?

Java 要使用哪个节流实现?,java,algorithm,scala,akka,throttling,Java,Algorithm,Scala,Akka,Throttling,我正在实现一种限制机制,以限制发送到服务器的web请求量。如果一个请求有太多提交,那么额外的请求将排队,直到资源可用为止。似乎有很多节流选项,我不确定该选择哪一个 到目前为止,我试图实现令牌桶算法,如中所述。目前有与此相关的Python代码,因此实现Java/Scala版本应该很简单 Guava有一个很好的实现,如中所述 此外,Akka似乎使用以下所述的节流器特性实现节流: 我想实现我自己的,但如果已经有解决方案,我不想重新发明轮子。与使用Guava&Scala已经提供的选项相比,使用令牌桶算法

我正在实现一种限制机制,以限制发送到服务器的web请求量。如果一个请求有太多提交,那么额外的请求将排队,直到资源可用为止。似乎有很多节流选项,我不确定该选择哪一个

到目前为止,我试图实现令牌桶算法,如中所述。目前有与此相关的Python代码,因此实现Java/Scala版本应该很简单

Guava有一个很好的实现,如中所述

此外,Akka似乎使用以下所述的节流器特性实现节流:

我想实现我自己的,但如果已经有解决方案,我不想重新发明轮子。与使用Guava&Scala已经提供的选项相比,使用令牌桶算法是否有优势


在三个最受推荐的选项中?

我认为,只要它做到了预期的效果,并且不占用大量资源,其中任何一个都是可行的。我还认为答案在很大程度上取决于需求,例如,一种方法可能比另一种方法更重于线程,如果您的实现运行在由CPU时间收费的基础设施上,这将是很糟糕的。