반응형
loadBalanceBlacklistTimeout는 로드 밸런싱(load balancing) 설정에서 사용되는 파라미터로, 특정 백엔드 서버 또는 노드가 비정상 상태로 감지되었을 때 해당 서버를 블랙리스트에 등록하고 요청에서 제외하는 시간을 정의합니다.
주요 개념
- 로드 밸런싱
- 클라이언트 요청을 여러 서버(백엔드 노드)로 분산해 서버의 부하를 줄이고 성능을 최적화하는 기술.
- 블랙리스트(Blacklist)
- 서버가 요청을 처리할 수 없는 상태(비정상적이거나 장애 발생)로 감지되면, 해당 서버는 블랙리스트에 등록됩니다. 등록된 동안에는 요청을 할당받지 않음.
- loadBalanceBlacklistTimeout
- 블랙리스트에 등록된 서버를 일정 시간 이후 다시 활성화(재검사)하기 위한 타임아웃 설정.
- 이 시간 동안 서버는 요청에서 제외되며, 타임아웃이 지나면 다시 요청 대상이 될 수 있음.
작동 원리
- 로드 밸런서가 특정 서버의 응답 시간이 느리거나 실패율이 높다고 판단하면, 해당 서버를 블랙리스트에 추가.
- 블랙리스트에 추가된 서버는 loadBalanceBlacklistTimeout으로 설정된 시간 동안 요청에서 제외.
- 타임아웃 이후 로드 밸런서는 해당 서버를 다시 테스트(헬스 체크)하여 정상 작동 여부를 확인.
- 정상 작동 시 요청 대상에 다시 포함.
- 비정상 상태가 지속되면 다시 블랙리스트에 등록.
설정 예시
- Apache HTTP 서버:
- retry=60: loadBalanceBlacklistTimeout 역할을 하며, 60초 동안 블랙리스트 상태 유지.
- ProxyPass / balancer://mycluster/ stickysession=JSESSIONID <Proxy balancer://mycluster> BalancerMember http://backend1.example.com retry=60 BalancerMember http://backend2.example.com retry=120 </Proxy>
- NGINX 로드 밸런싱:
- fail_timeout=30s: 서버가 비정상 상태일 경우 30초 동안 요청에서 제외.
- upstream backend { server backend1.example.com max_fails=3 fail_timeout=30s; server backend2.example.com max_fails=3 fail_timeout=30s; }
사용 사례
- 장애 서버 회피
장애가 발생한 서버를 제외하여 안정적인 서비스 제공. - 임시 장애 처리
일시적인 네트워크 지연이나 서버 과부하 문제를 타임아웃 설정으로 완화. - 정상 복귀 모니터링
일정 시간이 지나면 서버를 다시 요청 대상으로 포함하여 지속적으로 상태 확인.
주의 사항
- 타임아웃 값 설정
- 너무 짧으면 비정상 서버에 요청이 다시 분산될 가능성.
- 너무 길면 복구된 서버를 활용하지 못해 자원이 낭비될 가능성.
- 헬스 체크와 조합 사용
- loadBalanceBlacklistTimeout은 헬스 체크와 함께 설정해야 서버 상태를 정확히 판단 가능.
요약
loadBalanceBlacklistTimeout는 장애 상태의 서버를 일정 시간 동안 블랙리스트에 등록하고, 이후 복구 상태를 재검사하는 로드 밸런싱 설정 파라미터입니다. 이를 통해 서비스 안정성과 효율성을 높일 수 있습니다.
반응형