2012-02-03 65 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");