Repolode
danielfm

danielfm/pybreaker

실패하는 의존성에 대한 호출을 차단해 시스템의 나머지 부분을 보호하는 Circuit Breaker 패턴의 Python 구현입니다.

스타
700
포크
96
열린 이슈
28
마지막 커밋
지난달

어떤 프로젝트인가요?

PyBreaker는 데이터베이스, 큐, 외부 서비스 등 안정적이지 않은 연동 지점에 대한 호출을 감쌉니다. 연속 실패 횟수가 설정한 한도에 도달하면 회로가 열리고, 이후 호출은 고장 난 의존성의 응답을 기다리는 대신 즉시 실패합니다. 재설정 시간이 지나면 다음 호출을 통과시켜 의존성이 복구되었는지 확인합니다.

Circuit breaker는 데코레이터, 직접 호출하는 메서드 또는 컨텍스트 매니저로 적용할 수 있습니다. 실패 횟수 집계에서 비즈니스 예외를 제외하고, 여러 이벤트 리스너를 등록하며, 제너레이터 함수도 보호할 수 있습니다. 속성과 메서드를 통해 런타임에 상태를 확인하고 변경할 수 있습니다.

상태는 메모리에 보관하거나 Redis에 저장할 수 있으며, breaker마다 별도의 네임스페이스를 사용합니다. 비동기 Tornado 코루틴을 위한 선택적 지원도 제공됩니다. Python 3.10 이상이 필요합니다.

핵심 기능

  • 01실패 임계값과 재설정 시간 설정
  • 02타입 또는 callable을 기준으로 비즈니스 예외를 실패 횟수 집계에서 제외
  • 03Circuit breaker마다 여러 이벤트 리스너 등록
  • 04제너레이터 함수 보호
  • 05선택적 Redis 기반 상태 저장
  • 06비동기 Tornado 호출 선택적 지원

활용 사례

  • 데이터베이스를 사용할 수 없을 때 연쇄 장애를 막도록 데이터베이스 호출 보호
  • 불안정한 서드파티 HTTP API 호출을 빠르게 실패 처리
  • 프로덕션 서비스에서 회로 상태 변경 기록 또는 알림

빠른 시작

  1. 1

    PyPI에서 PyBreaker를 설치합니다

    pip install pybreaker
  2. 2

    CircuitBreaker를 생성하고 함수에 적용합니다

사용 전 알아둘 점

  • Python 3.10 이상이 필요합니다.

포함된 컬렉션

토픽

#circuit-breaker#resilience#fault-tolerance#python#redis#microservices

자주 묻는 질문

pybreaker은(는) 무엇인가요?
실패하는 의존성에 대한 호출을 차단해 시스템의 나머지 부분을 보호하는 Circuit Breaker 패턴의 Python 구현입니다. PyBreaker는 데이터베이스, 큐, 외부 서비스 등 안정적이지 않은 연동 지점에 대한 호출을 감쌉니다. 연속 실패 횟수가 설정한 한도에 도달하면 회로가 열리고, 이후 호출은 고장 난 의존성의 응답을 기다리는 대신 즉시 실패합니다. 재설정 시간이 지나면 다음 호출을 통과시켜 의존성이 복구되었는지 확인합니다.
pybreaker은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
pybreaker은(는) BSD-3-Clause 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
pybreaker은(는) 아직 유지보수되고 있나요?
6개월 이내 업데이트. pybreaker의 마지막 커밋은 2026년 9월 25일입니다.
pybreaker은(는) 어디에 사용할 수 있나요?
데이터베이스를 사용할 수 없을 때 연쇄 장애를 막도록 데이터베이스 호출 보호 불안정한 서드파티 HTTP API 호출을 빠르게 실패 처리 프로덕션 서비스에서 회로 상태 변경 기록 또는 알림
pybreaker는 어떻게 설치하나요?
PyPI에서 PyBreaker를 설치합니다: pip install pybreaker CircuitBreaker를 생성하고 함수에 적용합니다
pybreaker은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/danielfm/pybreaker

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트

함수형 코드에 서킷 브레이커, 속도 제한기, 재시도, 벌크헤드, 시간 제한 데코레이터를 제공하는 경량 Java 장애 허용 라이브러리입니다.

백엔드·API#java#fault-tolerance#circuit-breaker
1.1만+2 이번 주1.5천JavaApache-2.0업데이트 8일 전