-
고가용성을 요구하는 호스트는 클라이언트보다는 일반적으로 서버
-
트래픽(traffic): 주어진 시점에 네트워크를 경유한 데이터의 양
-
서버에 과도한 트래픽이 몰리면 서버의 가용성 떨어뜨림
- 높은 부하로 인해 CPU는 발열이 심해지고, 메모리 공간은 수많은 트래픽 내용을 저장하기에 부족해질 수 있다.
- 제한된 대역폭과 병목 현상으로 인해 응답이 느려지거나 일부 요청에 대한 응답이 누락될 수 있다.
- 프로그램의 일관성이 손상될 수도 있다.
-
로드 밸런싱(load balancing): 트래픽의 고른 분배를 위해 사용되는기술
- 로드(부하) + 밸런싱(균형 유지)
- 로드 밸런서(load balancer)에 의해 수행
- 로드 밸런싱 기능을 제공하는 소프트웨어를 설치하면 일반 호스트도 로드 밸런서로 사용할 수 있음
- 로드 밸런서는 이중화나 다중화 된 서버와 클라이언트 사이에 위치
- 클라이언트들은 로드 밸런서에 요청을 보내고, 로드 밸런서는 해당 요청을 각 서버에 균등하게 분배

-
헬스 체크(health check)
- 다중화 된 서버 환경에서는 현재 문제가 있는 서버는 없는지, 현재 요청에 대해 올바른 응답을 할 수 있는 상태인지를 주기적으로 검사
-
하트비트(heartbeat)
- 서버끼리 주기적으로 하트비트 메시지를 주고받다가, 신호가 끊겼을 때 문제 발생을 감지하는 방법
-
로드 밸런싱 알고리즘
- 부하가 균등하게 분산되도록 부하 대상을 선택하는 방법
- 라운드 로빈 알고리즘: 단순히 서버를 돌아가며 부하를 전달
- 최소 연결 알고리즘: 연결이 적은 서버부터 우선적으로 부하를 전달
- 때로는 단순히 무작위로 고르기도 하고, 해시라는 자료 구조를 이용하기도 하며, 응답 시간이 가장 짧은 서버를 선택
- 라운드 로빈 알고리즘이나 최소 연결 알고리즘에서는 서버마다 가중치를 부여할 수도 있다.
- 알고리즘에 따라 동작하되, 가중치가 높은 서버가 더 많이 선택되어 더 많은 부하를 받도록 하는 것
- 가중치 라운드 로빈 알고리즘, 가중치 최소 연결 알고리즘
