Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info

이장을 통해 알수 있는것

  • 라우터와 라우티의 차이
  • 그룹과 풀의 차이
  • 여러 라우터를 사용하여 분산처리에 사용

프린터의 확장

앞장에서 프린터 1대는 프린터 요청을 큐에 담고, 자체 큐를 이용하여 순차적인 처리를 하였습니다.

...

  • 라우터 : 분배를 담당하는 경로
  • 라우티 : 라우터에 연결된 , 하나의 인스턴스
  • 라운드 로빈 : 요청에대해 순차적인 분배 처리

성능 확장 코드구현

Code Block
languagec#
themeEmacs
actor.deployment {
	/printer-pool {
		router = round-robin-pool
		nr-of-instances = 5
	}
}

AkkaLoad.RegisterActor(
	"printer",
	actorSystem.ActorOf(actorSystem.ActorOf(Props.Create<PrinterActor>()
			.WithRouter(FromConfig.Instance).WithDispatcher("custom-task-dispatcher"),
			//.WithRouter(new RoundRobinPool(5)),
			"printer-pool"
));

...

성능 분배에는 다양한 Routing strategy 을 세울수 있습니다.


그룹과 풀의 차이

  • POOL : 같은 액터를 묶어주는 것을 Pool 이라고 합니다.
  • GROUP :  이미 생성된 액터를 묶어주는것을 Group이라고 하며, 다른 Type의 액터를 묶을수 있으며, POOL을 포함시킬수도 있습니다.


단일기능을 분산 확장하기

자신이 작성한 로컬 객체를 코드 변경없이 5배의 성능을 내게하거나  리모트로 분산처리를 되게 할수 있을까요?

...