Akka命名资源串行执行

时间:2014-10-30 19:33:36

标签: scala akka

我正在寻找有关如何完成以下操作的建议。我的Akka应用程序将作为一个集群运行,它将持久保存到后端Web服务。我保留的每个资源都被命名。例如:A,B,C

每个资源都会有一个更改队列,我正在寻找一个可以让我控制以下内容的配置的想法:

  • 任何时间点正在进行的REST调用的最大数量(整体并发)
  • 确保每个命名资源只有一个REST请求正在进行中
  • 对于并发请求,只要它们不属于同一资源
  • 就可以了
  • 根据数据库中的记录,命名资源是动态的

由于

1 个答案:

答案 0 :(得分:0)

我的愿景是下一个:

你需要有某种主管,保持某种状态。在向该主管提出的每个请求中,您检查您当前正在处理此资源的情况。如果是,那么您应该将此请求存储到某个存储/队列。如果不是,则生成新的actor并将此actor和资源置于上述状态。完成后,从状态中删除actor和资源。我强烈建议你让存储/队列临时保存对主管演员的请求。在这种情况下,您可以保护自己免受压倒性系统的影响。为了保证整体并发性要求,您可以使内部状态的主管受限,如果大小超过您存储请求到存储/队列。

当然,您需要一些轮询此队列的机制并向主管发出请求