라운드로빈


Haproxy,Nginx,Elb 와 같이 API 로드밸런스를 그냥 이용할수도 있지만 우리는 로드밸런스에 이용되는

분배전략을 이해할 필요가 있습니다.


배분과 분배는 경제용어로는 다음과 같은 차이가 있으며 분배기보다 배분기가 더 가까우나

경제단어의 정의와 상관없이 IT용어로 분배기라는 표현을 일상적으로 사용하게됩니다.

  • 배분 :  생산에 필요한 자원을 각 산업에 투입시키는것
  • 분배 : 생산의 결과물인 소득을 생산과정에 참여한 노통, 자본에게 나눠주는것


하지만 분배라는 단어를 직역하면 Distributed 이며 이 단어는 분산처리와 더 가까우며~

우리가 자주사용하는 IT단어가 영어와 사실상 일치 하지 않습니다.

분배기로 알고 있는 단어는 router 와 더 근접하며 다음과 같이 정의 될수 있습니다.

  • 라우터(router) : 분배가 처리되는 지점
  • 라우팅(routing) : 분배가 작동되는 알고리즘으로 다양한 분배 전략을 선택할수 있습니다.
    • Round Robin - 우리가 일반적으로 알고 있는 순차균등
    • Broad Cast - 분배없이 모든 라우티에게 동일메시지 복제전달~
    • consistent-hashing - 웰소켓 연결지속이 필요한 경우 특정 롤기반 분배
    • smallest-mailbox - 덜 바쁜 노드에게 분배
    • tail-chopping - 처리가 느린 라우티를 임시기간 제외함으로 휴식기간을줌
    • scatter-gather - 모두에게 동시 요청하고 가장 결과값이 빠른 값을 사용
  • 라우팅 테이블 : 테이블에 목적지에 대해 정의가 되는케이스
  • 라우티 (routee) : 라우팅의 목적지에 해당하며 도달지점은 작업자와 연결됩니다.


우리가 알고 있는 로드밸런스의 분배기개념은 'router' 란 단어와 더 가까우며 스택오버플로우를 포함 관련 전문지식 검색시 해당단어로 검색을 하는것에 도움이 됩니다.


라우팅 전략을 학습하는것 자체는 로드밸런스를 이용함에 있어서도 도움이 될수 있으며

이벤트 중심의  도메인에서 API로드밸런스만 이용하는것이아닌 우리가 발생하는 도메인을 어떠한 전략으로 분산 또는 분배처리할것인가? 고민을 할때도 도움될수 있으며


다음 샘플 프로젝트는 라우팅을 직접 구현하고 시각화함으로 단순하게 이용하는것을 넘어 

도메인 이벤트의 분산또는 분배처리를 설계에 녹일수 있으며~ 이러한 지식을 알고 있다고 하면 상태없는 API 서비스의 로드밸런스에서

라운드로빈이면 충분하고 연결성을 유지해야하는 웹소켓에서 라운드 로빈전략은 왜 실패하고 무엇이 필요한지 이해하게 됩니다.


AKKA.net 라우팅 모델 시각화 프로젝트


링크 :



  • No labels
Write a comment…