domingo, 20 de setembro de 2026 · Edição online
PosUp
PosUp

Circuit Breaker: como implementar em microsservicos (guia)

ResumoCircuit Breaker é um padrão de resiliência para microsserviços que previne falhas em cascata. A implementação envolve selecionar bibliotecas como Hystrix ou Resilience4j, configurar thresholds de falha e timeouts, e testar cenários de abertura e fechamento do circuito. O guia prático cobre desde a escolha da ferramenta até testes de resiliência para garantir estabilidade do sistema.

Implementar circuit breaker em microsservicos evita que uma falha em um serviço derrube todo o sistema. Neste guia, mostramos o passo a passo para configurar o padrão, desde a escolha da biblioteca até os testes de resiliência.

Patrícia Lemos Patrícia Lemos · Especialista em dados e analytics
· · 3 min de leitura
Circuit Breaker: como implementar em microsservicos (guia)
Foto: Imagem ilustrativa · PosUp

Implementar circuit breaker em microsservicos evita que uma falha em um serviço derrube todo o sistema. Neste guia, mostramos o passo a passo para configurar o padrão, desde a escolha da biblioteca até os testes de resiliência.

Implementar circuit breaker em microsservicos significa proteger seu sistema contra falhas em cascata. Quando um serviço dependente falha, o circuit breaker interrompe as chamadas automaticamente, evitando que a instabilidade se espalhe. O resultado esperado: um sistema resiliente que se recupera sozinho. Pré-requisitos: conhecimento básico de microsservicos e uma biblioteca de resiliência (Resilience4j, Hystrix ou Spring Cloud Circuit Breaker).

Passo 1: Escolha a biblioteca e configure o monitoramento

Selecione uma biblioteca compatível com sua stack. Resilience4j é a escolha mais comum para Java moderno, pois substituiu o Hystrix (descontinuado). Configure o monitoramento para registrar o número de chamadas, falhas e tempos de resposta. Sem monitoramento, você não consegue ajustar os thresholds.

Erro comum: usar a biblioteca sem configurar métricas. Você precisa de um dashboard (Prometheus + Grafana, por exemplo) para enxergar quando o circuito abre.

Passo 2: Defina os thresholds de abertura do circuito

Determine quantas falhas consecutivas ou qual percentual de erro deve disparar o circuit breaker. Um valor inicial comum: 5 falhas em 10 segundos, ou 50% de taxa de erro. Ajuste conforme o comportamento real do serviço.

Dica: comece com thresholds mais baixos (menos tolerância a falhas) e aumente gradualmente. Um circuito que abre cedo demais protege mais, mas pode causar falsos positivos.

Passo 3: Implemente o estado half-open e o timeout

O circuit breaker tem três estados: fechado (normal), aberto (bloqueia chamadas) e half-open (testa recuperação). Configure o tempo que o circuito fica aberto antes de tentar uma requisição de teste (ex.: 30 segundos). Se a chamada de teste falhar, volta para aberto; se bem-sucedida, fecha o circuito.

Erro comum: esquecer de configurar o timeout. Sem timeout, uma chamada lenta mantém o circuito aberto por tempo indefinido. Defina um timeout agressivo (ex.: 2 segundos) para serviços críticos.

Passo 4: Adicione fallback para quando o circuito abrir

Quando o circuit breaker abre, sua aplicação precisa de uma resposta alternativa (fallback). Pode ser um valor em cache, uma mensagem padrão ou uma chamada a um serviço secundário. O fallback evita que o usuário veja um erro 500.

Dica: registre logs sempre que o fallback for acionado. Isso ajuda a identificar padrões de falha e ajustar os thresholds.

Passo 5: Teste com injeção de falhas

Simule falhas nos serviços dependentes usando ferramentas como Chaos Monkey ou Toxiproxy. Verifique se o circuit breaker abre no tempo esperado, se o fallback é chamado e se o sistema se recupera sozinho.

Erro comum: testar apenas em ambiente de desenvolvimento. O comportamento em produção (latência real, volume de requisições) é diferente. Faça testes de carga com falhas injetadas.

Checklist do que foi implementado

  • [ ] Biblioteca de circuit breaker configurada com métricas
  • [ ] Thresholds de falha definidos (ex.: 5 falhas em 10s)
  • [ ] Timeout configurado para chamadas lentas
  • [ ] Estado half-open com tempo de espera ajustado
  • [ ] Fallback implementado para cada serviço crítico
  • [ ] Testes de injeção de falhas realizados

FAQ

Qual a diferença entre circuit breaker e retry?

Retry tenta novamente a chamada que falhou, geralmente com backoff. Circuit breaker bloqueia todas as chamadas por um período quando a taxa de erro ultrapassa o limite. Eles são complementares: use retry para falhas transitórias e circuit breaker para falhas persistentes.

Como escolher entre Resilience4j e Hystrix?

Hystrix foi descontinuado pela Netflix. Resilience4j é a alternativa moderna, com menor overhead e suporte a Spring Boot 3. Para projetos novos, prefira Resilience4j. Para sistemas legados, planeje a migração.

O circuit breaker funciona para chamadas síncronas e assíncronas?

Sim. Em chamadas síncronas (HTTP), ele bloqueia a thread. Em assíncronas (filas, eventos), ele impede o envio da mensagem. A configuração de thresholds e timeout se aplica a ambos os casos.

Como monitorar o estado do circuit breaker em produção?

Exponha métricas via endpoints (ex.: /actuator/health no Spring) e colete com Prometheus. Crie alertas para quando o circuito abrir com frequência, indicando degradação do serviço dependente.

O que acontece se o fallback também falhar?

O fallback deve ser projetado para não depender do serviço original. Se falhar, a aplicação precisa retornar um erro amigável (ex.: "Serviço temporariamente indisponível") e registrar o incidente. Considere um fallback em cache estático como última opção.

Compartilhar:
Patrícia Lemos

Patrícia Lemos

Especialista em dados e analytics

Transforma painel cheio de número em decisão. Cuida de mensuração, dashboard e a métrica que de fato move o negócio.

Ver todos os artigos →

Leia também

Consulta placa: o que o relatório revela sobre o carro
Apps e Software

Consulta placa: o que o relatório revela sobre o carro

Antes de fechar negócio num anúncio de carro usado, a consulta placa mostra o que o vendedor não vai contar sozinho.

16 de setembro de 2026 · Redação
Consultar placa Detran RJ: o que o anúncio não mostra
Apps e Software

Consultar placa Detran RJ: o que o anúncio não mostra

Comprar carro usado no Rio exige mais que confiar no vendedor. Veja como a tecnologia ajuda a checar a placa antes de fechar negócio.

16 de setembro de 2026 · Redação
Resiliência sistemas críticos: 11 práticas essenciais
Apps e Software

Resiliência sistemas críticos: 11 práticas essenciais

Resiliência em sistemas críticos é a capacidade de continuar operando, ou se recuperar rápido, diante de falhas. Reunimos 11 práticas testadas, da redundância à análise de causa raiz, para você priorizar o que realmente protege a operação.

16 de setembro de 2026 · Patrícia Lemos

Gostou? Receba mais análises

Newsletter quinzenal · curadoria editorial · sem spam