quarta-feira, 12 de agosto 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

9 antipadroes de arquitetura que matam a escalabilidade
Apps e Software

9 antipadroes de arquitetura que matam a escalabilidade

Escalabilidade nao e so adicionar maquinas. Alguns antipadroes de arquitetura travam o crescimento silenciosamente. Veja os 9 mais comuns e como evita-los.

12 de agosto de 2026 · Gustavo Rennó
Feature flags deploys risco: guia passo a passo
Apps e Software

Feature flags deploys risco: guia passo a passo

Deploy com feature flags reduz o risco de incidentes e acelera a entrega. Veja como implementar na prática, com etapas claras e erros comuns a evitar.

11 de agosto de 2026 · Patrícia Lemos
Blue-green canary deployment: qual escolher?
Apps e Software

Blue-green canary deployment: qual escolher?

Blue-green troca 100% do tráfego entre dois ambientes; canary libera aos poucos. A escolha depende do seu apetite a risco, da infraestrutura e da velocidade de rollback que você precisa.

11 de agosto de 2026 · Patrícia Lemos

Gostou? Receba mais análises

Newsletter quinzenal · curadoria editorial · sem spam