함수형 코드에 서킷 브레이커, 속도 제한기, 재시도, 벌크헤드, 시간 제한 데코레이터를 제공하는 경량 Java 장애 허용 라이브러리입니다.
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
PyPI에서 PyBreaker를 설치합니다
pip install pybreaker - 2
CircuitBreaker를 생성하고 함수에 적용합니다
사용 전 알아둘 점
- Python 3.10 이상이 필요합니다.
포함된 컬렉션
토픽
자주 묻는 질문
- 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 통계는 매일 갱신됩니다.
관련 프로젝트
내장 복원력 기능과 .api 명세 기반 goctl 코드 생성기를 제공하는 Go 웹 및 RPC 마이크로서비스 프레임워크입니다.
Spring Cloud 애플리케이션을 Tencent의 Polaris와 연동해 서비스 검색 및 거버넌스를 제공하는 Spring Cloud 구현체입니다.
코드를 거의 또는 전혀 변경하지 않고 마이크로서비스에 트래픽 관리, 보안, 관측 기능을 추가하는 오픈소스 서비스 메시입니다.
순수 Go로 작성된 경량 실시간 메시징 백엔드로, WebSocket과 TCP를 통해 1:1 메시지와 채팅방 브로드캐스트를 지원합니다.
Java 백엔드 개발자를 위한 면접 준비 지식 베이스: 동시성, 분산 시스템, 마이크로서비스, 빅데이터