Junior — Middle
Pode explicar o funcionamento do padrão Circuit Breaker e o seu papel na garantia da fiabilidade do sistema?
sobes.tech IA
Resposta da IA
O padrão Circuit Breaker é utilizado para aumentar a fiabilidade de sistemas distribuídos, evitando chamadas repetidas a um serviço que não funciona ou responde lentamente.
Como funciona:
- Fechado (estado fechado): Todas as solicitações passam normalmente.
- Aberto (estado aberto): Se o número de erros exceder um limite, o Circuit Breaker «abre» — novas solicitações recebem imediatamente um erro sem tentar chamar o serviço.
- Meio-aberto (estado semiaberto): Após algum tempo, o Circuit Breaker permite um número limitado de solicitações para verificar se o serviço se recuperou.
Se as solicitações forem bem-sucedidas, o estado volta a Fechado, caso contrário, volta a Aberto.
Isto previne sobrecarga no serviço que não funciona e permite que o sistema se recupere mais rapidamente.
Exemplo de uso em Go (simplificado):
// Pseudo-código
cb := NewCircuitBreaker()
if cb.AllowRequest() {
err := callRemoteService()
if err != nil {
cb.RecordFailure()
} else {
cb.RecordSuccess()
}
} else {
// Retorna erro imediatamente, sem chamar o serviço
}
Assim, o Circuit Breaker ajuda a tornar o sistema mais resistente a falhas.