헬스 체크는 주기적으로 서버의 상태를 점검하고, 주기적인 체크 사이에 발생한 상태 변화는 즉시 반영되지 않는다. 예를 들어, 서버가 헬스 체크 요청 시점에는 정상적이었지만, 그 후 헬스 체크가 다시 실행되기 전에 서버가 비정상 상태로 바뀐다면, 로드밸런서는 이 상태를 즉시 감지하지 못함
고급 로드밸런서는 실시간으로 헬스체크를 하는 것도 있다고 함
수초 정도의 차이는 엄청난 성능 저하로 이어지지 않는 것 같다
역시나 비용차이.. 인생은 trade-off.. 시간 부족 이슈ㅠㅠ 이 내용은 조금 더 찾아보자.
Load Balancing Algorithm
🔥(중점) 알고리즘 별로 적합한 서비스를 생각하면서 자료 조사 해보자🔥
1. Round Robin (RR)
가장 기본적인 알고리즘으로, 요청을 순차적으로 서버에 분배하는 알고리즘.
서버의 상태나 부하와는 관계없이 요청을 분배함.
정적인 웹사이트에 적합
연결 유지가 중요한 서비스에는 적합하지 않다.
✅(의문)연결 유지가 중요한 서비스?
온라인 게임 서버: 게임의 진행 상태나 플레이어의 상태 정보가 서버에 저장되어야 함
전자상거래 사이트: 결제 정보 같은 중요한 상태 정보를 유지해야 하는 경우
실시간 통신 애플리케이션(예: 채팅 시스템, 화상 회의): 실시간으로 연결 상태를 유지하며 통신하는 서비스는 세션이 끊어지지 않도록 동일 서버에 연결을 유지하는 것이 중요
2. Sticky RR
RR 방식에 세션 유지 기능을 추가한 알고리즘.
세션 정보를 통해, 특정 클라이언트는 항상 동일한 서버에 요청을 보내도록 함.
3. Weighted RR
각 서버는 가중치를 가지고 있고, 그 가중치에 비례하는 양의 요청을 보내는 알고리즘.
고성능과 저성능 서버를 동시 운용할 때, 적합 → 영상 스트리밍
4. IP/URL Hash
클라이언트의 IP 또는 요청 URL을 해싱하여 해싱값에 매칭되는 서버로 분배하는 알고리즘.
IP 해싱은 Sticky RR과 유사하지만, 세션 정보 없이 클라이언트가 일정한 서버에 요청 가능
URL 해싱 알고리즘은 API 서버에 적합, 즉 url 패턴에 따라 특정 서버에만 가도록 할 수 있음
댓글 영역