我可以使用Akka来限制在分布式系统中进行的Web服务请求吗?

时间:2014-02-10 15:54:17

标签: java akka throttling

Akka可以为分布式应用程序(Java / JEE)提供Web请求限制吗?

我的应用程序消耗了许多Web服务,每个Web服务都允许最大数量的并发请求。我看了

  • TimerBasedThrottle - 适用于单节点应用程序,但无法管理分布式设置中发送的数量或请求。
  • 平衡调度程序 - 在向空闲Actors发送消息的Actors之间共享一个邮箱,但它不会强制每秒/分钟限制等。

使用Akka实现这一目标的最佳方式是什么?

1 个答案:

答案 0 :(得分:2)

如果要控制和限制分布式系统执行的某些操作的数量,则分布式节点必须进行通信才能实现。最简单的方法是让一个中央参与者跟踪对某个目标Web服务发出的所有请求,并分发允许它们发生的故障(在超过配置的限制时延迟或丢弃请求)。如果您不希望产生节点间通信的开销,那么您将不得不对您的配额进行分区,以确保通过单独限制所有节点,其总和不能超过限制,但这显然是浪费,除非请求发起者是完美平衡。