Akka 远程配置问题



在使用 Akka actor 模型时akka.conf配置文件有一些我不明白的地方(对于 Java,但对于 Scala 必须相同(。

例如,使用远程模块时:

我有时会看到这样的东西:

akka {
actor {
provider = "akka.remote.RemoteActorRefProvider"
}

remote {

有时:

akka {
actor {
provider = remote
}

remote {

首先,关键provider的期望值是多少?有时是类名,有时是正义remote顺便问一下,为什么它是remote而不是akka.remote考虑远程是在akka命名空间下?

来自 reference.conf(在撰写本答案时当前(:

akka.actor {
# Either one of "local", "remote" or "cluster" or the
# FQCN of the ActorRefProvider to be used; the below is the built-in default,
# note that "remote" and "cluster" requires the akka-remote and akka-cluster
# artifacts to be on the classpath.
provider = "local"

akka.actor.provider是在启动时解释的字符串。 这种解释是通过构造一个ProviderSelection来实现的(见这里(。 如果提供了完全限定的类名,则使用该类名。clusterlocal(默认值,从reference.conf开始(和remote分别是akka.cluster.ClusterActorRefProviderakka.actor.LocalActorRefProviderakka.remote.RemoteActorRefProvider的同义词。

最新更新