Repolode
danielfm

danielfm/pybreaker

Реализация паттерна Circuit Breaker для Python: прерывает вызовы к сбоящим зависимостям, защищая остальную систему.

Звёзды
701
Форки
96
Открытые issues
28
Последний коммит
в прошлом месяце

Что это?

PyBreaker оборачивает вызовы ненадёжных точек интеграции, например баз данных, очередей или внешних сервисов. После заданного числа последовательных сбоев цепь размыкается, и последующие вызовы сразу завершаются ошибкой, не ожидая ответа от неисправной зависимости. По истечении тайм-аута сброса следующий вызов пропускается, чтобы проверить, восстановилась ли зависимость.

Circuit Breaker можно использовать как декоратор, через прямой вызов метода или как контекстный менеджер. Библиотека позволяет исключать бизнес-исключения из подсчёта сбоев, подключать несколько обработчиков событий и защищать функции-генераторы. Состояние можно проверять и менять во время работы программы с помощью свойств и методов.

Состояние можно хранить в памяти или в Redis, используя отдельное пространство имён для каждого Circuit Breaker. Также предусмотрена опциональная поддержка асинхронных корутин Tornado. Для работы библиотеки требуется Python 3.10 или новее.

Ключевые возможности

  • 01Настраиваемый порог сбоев и тайм-аут сброса
  • 02Исключение бизнес-исключений из подсчёта сбоев по типу или вызываемому объекту
  • 03Несколько обработчиков событий для каждого Circuit Breaker
  • 04Защита функций-генераторов
  • 05Опциональное хранение состояния в Redis
  • 06Опциональная поддержка асинхронных вызовов Tornado

Сценарии использования

  • Защита вызовов базы данных от каскадных сбоев при её недоступности
  • Немедленное завершение вызовов нестабильного стороннего HTTP API
  • Логирование изменений состояния Circuit Breaker или отправка оповещений о них в production-сервисах

Быстрый старт

  1. 1

    Установите PyBreaker из PyPI

    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 — 25 сент. 2026 г..
Для чего можно использовать pybreaker?
Защита вызовов базы данных от каскадных сбоев при её недоступности Немедленное завершение вызовов нестабильного стороннего HTTP API Логирование изменений состояния Circuit Breaker или отправка оповещений о них в production-сервисах
Как установить pybreaker?
Установите PyBreaker из PyPI: pip install pybreaker Создайте CircuitBreaker и защитите с его помощью функцию
Где скачать pybreaker?
Исходный код и инструкции по установке — на GitHub: https://github.com/danielfm/pybreaker

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Лёгкая библиотека отказоустойчивости для Java с декораторами Circuit Breaker, Rate Limiter, Retry, Bulkhead и Time Limiter для функционального кода.

Бэкенд и API#java#fault-tolerance#circuit-breaker
10,8 тыс.+3 за неделю1,5 тыс.JavaApache-2.0Обновлён 9 дней назад

Фреймворк на Go для веб-сервисов и RPC-микросервисов со встроенными механизмами отказоустойчивости и генератором кода goctl на основе спецификаций .api.

33,4 тыс.+2 за неделю4,3 тыс.GoMITАктивно поддерживаетсяОбновлён вчера

Открытая service mesh-платформа, которая добавляет микросервисам управление трафиком, безопасность и наблюдаемость с минимальными изменениями кода или вовсе без них.

38,5 тыс.+16 за неделю8,4 тыс.GoApache-2.0Обновлён 17 часов назад