2012-02-03 4 views
1

Akka 2.0を使用する場合、リモートアクタにActorRefを取得する方法がありますが、プログラマチックに指定するのではなく、探しているアクタのアドレスを設定から取得する方法がありますか?私は、例えば設定からakkaアクターアドレスを検索できますか?

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

を使用したいが、私はちょうど私の application.confを変更することで、remotehostの変更できるようにしたいです。

答えて

4

あなたはActorSystemに含まれるConfigオブジェクト(またはあなたが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"); 
関連する問題