Middle — Middle+
Explique o princípio de funcionamento e a finalidade do componente Circuit Breaker em sistemas de fiabilidade.
sobes.tech IA
Resposta da IA
O componente Circuit Breaker é utilizado para melhorar a fiabilidade dos sistemas distribuídos, evitando tentativas repetidas de chamar um serviço que não funciona e reduzindo a carga no sistema.
Princípio de funcionamento:
- Estado fechado: Todas as solicitações passam normalmente.
- Estado aberto: Se o número de erros exceder um limite, o Circuit Breaker «abre» e bloqueia futuras solicitações, retornando imediatamente um erro ou uma resposta alternativa.
- Estado semiaberto: Após algum tempo após abrir, permite um número limitado de solicitações para verificar se o serviço se recuperou.
Se as solicitações forem bem-sucedidas, volta ao estado fechado, caso contrário, abre-se novamente.
Isto previne uma carga excessiva no serviço que falhou e dá tempo para sua recuperação, melhorando a estabilidade geral do sistema.
Exemplo em Go (simplificado):
// Pseudocódigo
cb := NewCircuitBreaker(3, time.Minute) // 3 erros - abre por 1 minuto
if cb.AllowRequest() {
err := callRemoteService()
if err != nil {
cb.RecordFailure()
} else {
cb.RecordSuccess()
}
} else {
// Retorna erro imediatamente, serviço indisponível
}