Biblioteca leve de tolerância a falhas para Java, com decorators de circuit breaker, rate limiter, retry, bulkhead e time limiter para código funcional.
danielfm/pybreaker
Implementação em Python do padrão Circuit Breaker, que interrompe chamadas a dependências com falha para proteger o restante do sistema.
- Estrelas
- 701
- Forks
- 96
- Issues abertas
- 28
- Último commit
- mês passado
O que é?
O PyBreaker envolve chamadas a pontos de integração pouco confiáveis, como bancos de dados, filas ou serviços externos. Após um número configurado de falhas consecutivas, o circuito abre e as chamadas seguintes falham imediatamente, em vez de ficarem aguardando uma dependência com problemas. Depois de um tempo limite de reinicialização, a próxima chamada é liberada para testar se a dependência se recuperou.
O Circuit Breaker pode ser usado como decorator, por meio de um método de chamada direta ou como gerenciador de contexto. Ele permite excluir exceções de negócio da contagem de falhas, usar vários event listeners e proteger funções geradoras. O estado pode ser consultado e alterado em tempo de execução por meio de propriedades e métodos.
O estado pode ser mantido em memória ou armazenado no Redis, com um namespace separado para cada breaker. A biblioteca também inclui suporte opcional a coroutines assíncronas do Tornado. É necessário usar Python 3.10 ou posterior.
Recursos principais
- 01Limite de falhas e tempo limite de reinicialização configuráveis
- 02Exclusão de exceções de negócio da contagem de falhas por tipo ou callable
- 03Vários event listeners por Circuit Breaker
- 04Proteção de funções geradoras
- 05Armazenamento opcional do estado no Redis
- 06Suporte opcional a chamadas assíncronas do Tornado
Casos de uso
- Proteger chamadas ao banco de dados contra falhas em cascata quando ele está indisponível
- Falhar rapidamente em chamadas a uma API HTTP instável de terceiros
- Registrar ou emitir alertas sobre mudanças no estado do circuito em serviços de produção
Início rápido
- 1
Instale o PyBreaker pelo PyPI
pip install pybreaker - 2
Crie um CircuitBreaker e proteja uma função com ele
Antes de usar
- Requer Python 3.10 ou superior.
Em coleções
Tópicos
Perguntas frequentes
- O que é pybreaker?
- Implementação em Python do padrão Circuit Breaker, que interrompe chamadas a dependências com falha para proteger o restante do sistema. O PyBreaker envolve chamadas a pontos de integração pouco confiáveis, como bancos de dados, filas ou serviços externos. Após um número configurado de falhas consecutivas, o circuito abre e as chamadas seguintes falham imediatamente, em vez de ficarem aguardando uma dependência com problemas. Depois de um tempo limite de reinicialização, a próxima chamada é liberada para testar se a dependência se recuperou.
- pybreaker é gratuito? Qual é a licença?
- pybreaker é open source sob a licença BSD-3-Clause. Confira os termos da licença antes de usá-lo em produtos comerciais.
- pybreaker ainda é mantido?
- Atualizado nos últimos 6 meses. O último commit de pybreaker foi em 25 de set. de 2026.
- Para que posso usar pybreaker?
- Proteger chamadas ao banco de dados contra falhas em cascata quando ele está indisponível Falhar rapidamente em chamadas a uma API HTTP instável de terceiros Registrar ou emitir alertas sobre mudanças no estado do circuito em serviços de produção
- Como instalar pybreaker?
- Instale o PyBreaker pelo PyPI: pip install pybreaker Crie um CircuitBreaker e proteja uma função com ele
- Onde consigo pybreaker?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/danielfm/pybreaker
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Framework de microserviços web e RPC em Go, com recursos integrados de resiliência e um gerador de código goctl orientado por especificações .api.
Implementação do Spring Cloud que integra aplicações Spring Cloud ao Polaris, da Tencent, para descoberta e governança de serviços.
Um service mesh de código aberto que adiciona gerenciamento de tráfego, segurança e observabilidade a microsserviços com poucas ou nenhuma alteração no código.
Backend leve de mensagens instantâneas, escrito em Go puro, com suporte a mensagens privadas e transmissões para salas via WebSocket e TCP.
Base de conhecimento para entrevistas de Java backend: concorrência, sistemas distribuídos, microsserviços e big data.