重用角色的Akka Dispatcher配置

时间:2019-11-12 14:57:18

标签: java akka akka-dispatcher

我正在尝试为受CPU约束的角色安排调度程序,并且有点困惑它如何适合我的角色布局。

我在akka上有以下演员布局:

Example Actor Layout

mapperX演员实际上是由不同的/userX演员初始化的同一演员类。

每个映射器actor都有3个CPU绑定任务,我使用Futures来安排任务。根据这些信息,我认为以下定制调度程序符合其要求:

mapper-dispatcher {
    type = Dispatcher
    executor = "fork-join-executor"
    fork-join-executor {
      parallelism-min = 3
      parallelism-factor = 2.0
      parallelism-max = 3
    }
  }

问题出在我的演员布局上。我的印象是,当我使用上述调度程序初始化映射器actor时,它们将共享同一调度程序。我没有最多/user个演员或/mapper个演员(他们是在用户注册时产生的)。结果,上述调度程序将不会削减它(更多的actor意味着更多的争夺上述调度程序的线程),并且每个mapper actor的并行性都会受到影响。

我认为我的演员布局有误。有人可以说明解决该问题的正确方法(感觉就像我需要一个单独的mapper路由器,该路由器将其下的工人控制在并行度上,以控制并行度的这种不受控制的增长)。

我对akka调度员来说还很陌生,我们将为您提供任何帮助。谢谢。

0 个答案:

没有答案