我有以下配置
akka{
actor {
deployment{
/my-router {
dispatcher = akka.actor.my-dispatcher
router = round-robin-pool
nr-of-instances = 100
cluster {
enabled = on
max-nr-of-instances-per-node = 30
}
}
}
my-dispatcher {
type = Dispatcher
executor = "fork-join-executor"
fork-join-executor {
parallelism-min = 4
parallelism-factor = 2.0
parallelism-max = 20
}
}
}
}
我发现(在visualVM的帮助下)没有使用my-dispatcher
的线程。但是,如果我通过my-dispatcher
指定.withDispatcher("akka.actor.my-dispatcher")
当我通过FromConfig为我的路由器创建道具时,我可以观察到该线程。我可以说我观察了那些线程,因为我看到名称如下的线程:actorSystenName-akka.actor.my-dispatcher-8
所以问题是:
如何通过配置为路由器设置调度程序?
此调度员是否会用于路由器(显然是路由器的子节点)?
通过config和viaDispatcher指定调度程序有什么区别?
我还试图在""
中包围config的调度程序设置,但仍然没有使用调度程序的名称观察visualVM中的线程,那么线程的名称是否具有这样的模式{actorSystenName}-{dispatcher}-{number}
?
修改
我发现pool-dispatcher
属性可用于设置路由器的子控制器(路由器)。但扩展FromConfig
的{{1}}缺少Pool
方法的覆盖。还有一个问题:是这样做的(usePoolDispatcher
是否在usePoolDispatcher
中未被覆盖)或FromConfig
不适用于此类用途?