2012-02-03 37 views
1

当使用Akka 2.0时,有没有办法让ActorRef获得一个远程actor,但是我正在查找的actor的地址来自配置而不是以编程方式指定它?我想,例如使用可以从配置中查找akka演员地址吗?

AkkaSystem("mysystem").actorFor("akka://[email protected]/user/whatever") 

,但我希望能够仅通过改变我的 application.conf远程主机改变。

回答

4

你可从包含在ActorSystemConfig对象的任意信息(或者你可以解析外部资源与ConfigFactory自己):

val system = AkkaSystem("mysystem") 
val config = system.settings.config 
val remotePath = config.getString("my-config.serviceA") 
val ref = system.actorFor(remotePath) 

连同在上面给出的路径在配置文件里定义一些字符串。然后还可以使用配置库的功率拼凑的路径(例如因子出远程节点的地址等):

​​
0

可以在配置中定义部署路径。
Akka docs

akka { 
    actor { 
    deployment { 
     /sampleActor { 
     remote = "akka.tcp://[email protected]:2553" 
     } 
    } 
    } 
} 

ActorRef actor = system.actorOf(Props.create(SampleActor.class), "sampleActor");