최소 연결은 할당 시점에 활성 연결이 가장 적은 서버로 들어오는 요청을 전달하는 동적 로드 밸런싱 알고리즘입니다. 고정된 순서로 요청을 균등하게 분배하는 라운드 로빈과 달리 최소 연결은 실시간 서버 부하에 따라 분배를 최적화하므로, 특히 오래 지속되는 연결이나 다양한 요청 크기가 있는 애플리케이션에 유용합니다.
요청이 도착하면 로드 밸런서는 다음을 수행합니다.
사용 가능한 각 서버에서 활성 연결 수를 확인합니다.
가장 적은 활성 연결을 가진 서버에 요청을 할당하여 작업 부하의 균형을 보장합니다.
연결이 열리고 닫히면서 조정되어 동적으로 프로세스를 반복합니다.
예를 들어, 트래픽을 처리하는 서버가 3개 있는 경우:
서버 A: 활성 연결 10개
서버 B: 활성 연결 5개
서버 C: 활성 연결 3개
현재 부하가 가장 낮은 서버 C로 새로운 요청이 라우팅됩니다.
실시간 부하 인식: 정적 순환이 아닌 실제 서버 활용도를 기준으로 트래픽이 균형을 이루도록 보장합니다.
장기 연결에 최적화: 일부 요청이 다른 요청보다 더 많은 리소스를 사용하는 데이터베이스, API, 스트리밍 서비스와 같은 환경에 이상적입니다.
과부하 위험 감소: 한 서버가 과부하 상태에 빠지는 동안 다른 서버는 활용도가 낮아지는 현상을 방지합니다.
지속적인 모니터링 필요: 로드 밸런서는 연결 상태를 지속적으로 추적해야 하므로 약간의 오버헤드가 발생할 수 있습니다.
짧은 요청에는 항상 최선은 아님: 트래픽이 여러 개의 작고 짧은 요청으로 구성된 경우, 연결 수가 서버 작업 부하를 정확하게 반영하지 못할 수 있습니다.
서버 용량 차이를 고려하지 않음: 모든 연결에 높은 처리 능력이 필요한 경우 더 강력한 서버도 여전히 과부하가 걸릴 수 있습니다. 이러한 경우 가중 최소 연결(용량에 따라 서버에 다른 가중치 할당)이 종종 선호됩니다.
API 게이트웨이: 처리 시간이 다양한 백엔드 마이크로서비스 간 트래픽을 균형 있게 분산합니다.
데이터베이스 부하 분산: 병목 현상을 방지하기 위해 데이터베이스 복제본에 쿼리를 분산합니다.
역방향 프록시 서버: 동적 콘텐츠를 처리하는 웹 서버가 과부하되지 않도록 보장합니다.
최소 연결은 효과적인 적응형 부하 분산 전략으로, 특히 트래픽 패턴이 예측할 수 없는 애플리케이션에 적합합니다. 요청이 가장 부담이 적은 서버로 전송되도록 보장함으로써 수요가 많은 환경에서 시스템 안정성과 반응성을 유지하는 데 도움이 됩니다.