Versions Compared

Key

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

Akka.net 액터메시지를 통해  메시지를 라운드로빈 분산처리하고, 분산처리된 노드에 메시지가 갔을때실제 분산처리및 로드밸런싱에 라우터장치를 살펴보고

분산처리 되는 목적지인 라우티를  아두이노 연결된 장비에 실제 램프를 켜는 변종실험을 해보겠습니다.

작동코드위치 : https://github.com/psmon/AkkaUno

...

시나리오구성

액터장치

  • ThrottleQueue : 100개의 메시지를 큐에 넣고 해당 메시지를 초당 하나씩 처리하여 , 라우터에 전달하여 분산처리되는 램프의 점등을 확인할수 있습니다메시지가 한꺼번에 간다고하면 분산처리되는것을 시각적으로 확인이 불가능하며 초당처리 흐름제어가 가능한 AkkaStream이 이용되었습니다.
  • RoundRobin(라우터) : 메시지가 들어오면, 그룹으로 묶인 액트에게 순차적으로 메시지를 분배합니다.
  • WorkActor : 각 작업액트로 메시지가 들어오면, UnoActor에 LED를 켜고끄는 시그널을 전송합니다. 액트(n):LED(n) 으로 1:1연결됩니다. ( 시리얼 통신 )
  • UnoActor : 우노장비의 시리얼통신만 담당합니다. 받은 문자열을 그대로 장비에 전송합니다.

...

  • UnoActor : 우노장비의 시리얼통신을 담당합니다.
  • ThrottleWork : 램프의 점등을 위해 속도를 제어합니다. 여기서의 출력은 분산처리를 위해 라운드 로빈으로 연결됩니다.
  • WorkActor : N개를 생성할수 있는 분산노드입니다. 이벤트가 발생하면 연결된 Led를 점등합니다. 우노장비에게 통신을 할수 있는 액터참조를 가지게됩니다.
  • RoundRobinGroup : N개의 WorkActor를 등록하여 분산처리될수 있게합니다.

...


작동영상 - 라운드로빈

View file
nameakkauno-led.mp4
height250

...

  • 라우터 : 목적지(라우티)를 결정하는 장치
  • 라우티 : 목적지가 도달하는 위치

...

  • 라우팅 : 라우터에서 라우티까지 작동되는 과정 자체


AKKA초기 셋팅하는과정은 다소 번거롭지만, 다음과같이 AKKA에서 제공되는 라우터 변경만으로 

...

또한 지금까지 코드를 큐와/스레드를 직접구현한다고하면, 난이도가 높은 부자연스러운 코드가 많이 작성될것입니다.


작동연상 - 랜덤

View file
nameakkauni-random.mp4
height250



다양한 라우터 제공

AKKA에서는 기초적인 라운드로빈 랜덤외에 다양한 라우터를 제공하여 작업분배시 활용할수가 있습니다. 

클러스터를 클러스터에서 활용한다고 하면 로드밸런서라 불리울수 있습니다.참고 URL,  로드밸런싱을 직접 설계할수가 있습니다.


몇가지 유용한 고급 제공되는 라우터를 알아보겠습니다.

ConsistentHashing

라우팅방식 : 데이터의 헤더값을 해시값으로 분석해, 특정 데이터가 고정된 노드에게 유도될수 있게 보장분배처리를 합니다.

로컬캐시는 일반적으로, 네트워크 중앙집중 캐시보다 빠르며, X라는 특정 사용자의 상태를 로컬자체에서 처리할때 활용될수 있습니다.

Image Added



SmallestMailbox

라운드로빈은 Task작업완료시간이 동일한 경우, 유용할수 있으나 Task의 완료시간은 동일하지 않은 경우가 더 많습니다.

덜바쁜 라우티에게 우선분배가되어 전체적인 밸런스를 유지할수있을때 유용할수 있습니다.

Image Added

TailChopping

다양한 원인으로 불특정노드만 일시적으로 느려지는 경우가 있습니다. 이 경우 활용될수 있으며

한가지 예로,  GC최적화가 안되었다고하면  GC수행을 할수 있는 휴식시간을 줄수 있습니다.

작동방식은, 꼬리자르기로 느려진 노드를 쉬게하는 방식으로 특정시간이상 응답이 느려진 노드를 일시적으로 라우터분배에서

제외하며 특정시간이 지나면 다시 참여를 시킵니다. 


더많은 라우터정보 참고https://getakka.net/articles/actors/routers.html

...