라운드 로빈은 여러 서버나 리소스에 요청, 작업 부하 또는 프로세스를 균등하게 분배하는 간단한 로드 밸런싱 및 작업 스케줄링 방법입니다. 순환 순서를 따르므로 풀의 각 서버는 첫 번째 서버로 돌아가기 전에 들어오는 요청을 순서대로 처리합니다.
A, B, C라는 세 개의 서버가 있는 시스템을 상상해보세요. 요청이 다음 순서로 도착한다면:
1 → 서버 A
2 → 서버 B
3 → 서버 C
4 → 서버 A (사이클 반복)
이 패턴은 단일 서버에 과부하가 걸리지 않도록 보장하므로 트래픽을 분산하는 간단하고 효과적인 방법입니다.
기본 라운드 로빈: 서버 부하나 용량을 고려하지 않고 엄격한 순차적 순서로 요청을 할당합니다.
가중 라운드 로빈: 사전 정의된 서버 가중치에 따라 요청을 할당하고, 더 강력한 서버를 우선시합니다. 예를 들어, 서버 A가 B와 C보다 두 배 빠르면 두 배 더 많은 요청을 받게 됩니다.
동적 라운드 로빈: 실시간 서버 상태 및 성능 지표에 따라 요청 분산을 조정합니다.
간단성: DNS, 프록시 서버 또는 애플리케이션 수준 부하 분산 장치에서 구현하고 구성하기 쉽습니다.
공정한 분배: 모든 서버에 트래픽이 균형 있게 분배되도록 하여 과부하를 방지합니다.
확장성: 여러 백엔드 서버가 있는 수평 확장 환경에 적합합니다.
불균형한 부하 분산: 기본 라운드 로빈은 실시간 성능을 고려하지 않기 때문에 일부 서버는 어려움을 겪고 다른 서버는 활용도가 낮을 수 있습니다.
세션 지속성 문제: 상태 비저장 애플리케이션은 라운드 로빈과 잘 작동하지만, 사용자 세션이 특정 서버에 연결된 경우(예: 로그인 세션), 이 방법은 세션 지속성이나 세션 복제가 없기 때문에 문제가 발생할 수 있습니다.
상태 점검 제한 사항: 표준 라운드 로빈은 본질적으로 서버 장애를 감지하지 못하므로, 상태 모니터링과 결합하지 않는 한 장애가 발생한 서버도 여전히 요청을 받을 수 있습니다.
DNS 부하 분산: 중복성과 성능 최적화를 위해 여러 IP에 트래픽을 분산합니다.
애플리케이션 부하 분산: 웹 서버, 프록시 및 클라우드 환경에서 백엔드 인스턴스에 요청을 분산하는 데 사용됩니다.
작업 스케줄링: 작업이나 프로세스가 여러 워커 노드에 균등하게 분산되어야 하는 컴퓨팅 클러스터에 적용됩니다.
라운드 로빈은 로드 밸런싱의 기본 기술로 남아 있으며, 특히 실시간 성능 최적화보다 단순성과 공정한 분배가 더 중요한 환경에서 그렇습니다. 그러나 트래픽이 많거나 성능에 민감한 애플리케이션에서는 적응형 또는 가중치 전략이 선호되는 경우가 많습니다.