콘텐츠로 이동

서킷 브레이커 & 장애 조치

Claudex는 각 프로바이더 프로파일에 내장 서킷 브레이커를 포함하며, 장애가 감지되면 백업 프로바이더로 자동 장애 조치됩니다.

success
┌──────────────┐
│ │
▼ failure │
Closed ────────► Open
▲ │
│ timeout │
│ expired ▼
└─────────── HalfOpen
failure → back to Open
상태동작
Closed정상 작동. 요청이 통과됩니다. 실패 횟수가 카운트됩니다.
Open요청이 차단됩니다. 백업 프로바이더로의 장애 조치가 트리거됩니다.
HalfOpen복구 타임아웃 후, 하나의 프로브 요청이 허용됩니다. 성공 시 Closed로 전환; 실패 시 Open으로 복귀.
파라미터
실패 임계값연속 3회 실패
복구 타임아웃30초

프로파일에 백업 프로바이더를 정의하여 자동 장애 조치를 활성화합니다:

[[profiles]]
name = "grok"
provider_type = "OpenAICompatible"
base_url = "https://api.x.ai/v1"
api_key = "xai-..."
default_model = "grok-3-beta"
backup_providers = ["deepseek", "chatgpt"] # 장애 조치 체인

grok이 연속 3회 실패하면:

  1. grok의 서킷 브레이커가 열림
  2. deepseek으로 요청 재시도
  3. deepseek도 실패하면 chatgpt 시도
  4. 각 백업 프로바이더는 독립적인 서킷 브레이커를 보유

OAuth 프로파일의 경우, HTTP 401 응답에 대해 특별한 처리가 적용됩니다:

  1. 프록시가 현재 OAuth 토큰을 무효화
  2. 자격 증명 체인에서 새 토큰 로드 시도
  3. 새 토큰으로 요청 재시도
  4. 재시도도 실패한 경우에만 서킷 브레이커 실패로 카운트

이를 통해 일시적인 토큰 만료로 인한 불필요한 장애 조치를 방지합니다.

백그라운드 상태 확인기가 약 30초마다 실행되어 활성화된 모든 프로파일에 경량 프로브 요청을 전송합니다. 상태는 TUI 대시보드에 색상 코드로 표시됩니다:

  • 초록색: 정상
  • 노란색: 저하됨 (최근 실패 있음)
  • 빨간색: 서킷 브레이커 열림