Versions Compared

Key

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

...

Code Block
languagec#
themeEmacs
linenumberstrue
var props = Props.Create<Worker>().WithRouter(FromConfig.Instance);
var actor = system.ActorOf(props, "workers");


Pools VS Groups

Pools : 라우터에게 생성할 인스턴스 수만 제공하면  액터생성을 처리합니다. ( 경로지정 없음,관련액터자동생성)

...

  • 풀(Pool) : 라우티를 관리하는 라우터 풀은 라우티를 만드는것부터 종료시 목록에서 제거하는것 까지 책임을 진다. 
  • 그룹(Group) : 라우티를 자동으로 관리하지 않으며, 직접 경로를 지정하여 그룹화 라우티가 인스턴스화 되는곳을 직접 제어가능 


draw.io Diagram
bordertrue
viewerToolbartrue
fitWindowfalse
diagramNamepoolvsgroup
simpleViewerfalse
width
diagramWidth401
revision1

풀라우터는 라이티가 라우터의 자식이여야 하지만, 그룹 라우터는 다른 액터(RouteeCreator)의

자식일수도 있다. 그룹의 경우 라우티의 부모가 같지 않아도되며, 각 라우터가 생성되어 실행중기기만

하면 된다.


라우터의 종류

...

이름작동다이어그램특징
round-robin

Round Robin Router

단순하게 들어온 메시지 순서대로, 순차적으로 대상 노드를 바꿔가며 전송시 사용
broadcast

Broadcast Router

어떠한 정보의 변경을 모든 노드가 알아야할시, 주로 전체 동기화및 전체 푸시용도

random


랜덤 메시지 전송
consistent-hashing

ConsistentHash Router

특정 처리에 대해 해시값기반 베이스로 노드의 변경의 가능성을 최소화할때
tail-chopping

기본적으로 랜덤이나, 느린놈을 제외하고 특정시간이 지나야 다시 합류시킴(일반적으로 빠른 응답속도 보장용)

옵션:

within = 10s
tail-chopping-router.interval = 20ms
scatter-gather

ScatterGatherFirstCompleted Router

성능을 위해 다중노드로 구성하였으며, 가장 빠르게 처리한 녀석의 결과를 사용할시
smallest-mailbox

SmallestMailbox Router

덜바쁜 노드우선으로 메시지를 보내고자 할때, 대용량 메시지 전송 보증이 필요할때
scatter-gather

ScatterGatherFirstCompleted Router

성능을 위해 다중노드로 구성하였으며, 가장 빠르게 처리한 녀석의 결과를 사용할시

옵션:

within = 10s

...