2012-02-03 2 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) 

을 위의 경로에서 구성의 일부 문자열을 정의하는. 당신은 또한 (원격 노드의 주소 등에서 예를 들어, 인자) 경로를 조각 같이하는 구성 라이브러리의 전원을 사용할 수 있습니다 : 당신은 구성에 배포 경로를 정의 할 수 있습니다

my-config { 
    remotenode = "akka://[email protected]:2134" 
    serviceA = ${my-config.remotenode}/service/A 
} 
0

.
부터 Akka docs :

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

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