Sobes.tech
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:

  1. Estado fechado: Todas as solicitações passam normalmente.
  2. 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.
  3. 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
}