You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

  라우터는 액터의 목적지 대상 경로를 정의하는 특수한 속성입니다.

동일메시지가 여러개의 경로에 복제 전달될수도 있으며, 최적화된 어떠한 경로에만 갈수도 있습니다.

즉, 메시지 전송 전략에따라 다양한 라우터 선택이 가능합니다.


라우터 설정전략


 라우터 설정은, 코드가 아닌 설정파일을 통해 하는게 일반적입니다. 라우터에 해당하는 고정된 노드는

운영중 변경될수 있기때문입니다. 하지만 어떠한 패턴에의해 동적으로 변경할수 있는 가능성도

있기때문에, 런타임 코드로의 변경도 지원을 합니다.


코드를 통해


예제는 라운드로빈 방식으로 5개의 작업자를 코드로 만든 예입니다.



var props = Props.Create<Worker>().WithRouter(new RoundRobinPool(5));
var actor = system.ActorOf(props, "worker");
var props = new RoundRobinPool(5).Props(Props.Create<Worker>());

설정파일을 통해


예제는 동일한 방식으로, 설정파일을 통해 ( http://getakka.net/articles/concepts/configuration.html )

라운드로빈 라우터를 설정한 모습입니다

akka.actor.deployment {
  /workers {
    router = round-robin-pool
    nr-of-instances = 5
  }
}



var props = Props.Create<Worker>().WithRouter(FromConfig.Instance);
var actor = system.ActorOf(props, "workers");



akka.actor.deployment {
  /workers {
    router = round-robin-group
    routees.paths = ["/user/workers/w1", "/user/workers/w2", "/user/workers/w3"]
  }
}
var props = Props.Create<Worker>().WithRouter(FromConfig.Instance);
var actor = system.ActorOf(props, "workers");



  • No labels