2014-02-10 12 views
1

Can Akka可以为分布式应用程序(Java/JEE)提供Web请求限制吗?我可以使用Akka来限制分布式系统中的Web服务请求吗?

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

  • TimerBasedThrottle - 适用于单节点应用程序,但无法管理在分布式设置中发送的数量或请求。
  • 平衡调度 - 股参与者将消息发送到空闲演员之间的单个邮箱,但不强制每秒/分钟的限制,等等。

什么是阿卡实现这一目标的最佳方式是什么?

回答

2

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

+0

谢谢@Roland库恩。通过Akka世界中的可用选项,您对中央角色(例如配置为运行remotley的平衡调度程序)有何建议? – cduggan

+0

单个演员每秒可以轻松处理数百万条消息,因此当它证明是一个问题时,我会开始担心如何调整该消息。 –

相关问题