Middle — Middle+
Pode explicar o princípio de funcionamento do Circuit Breaker e por que ele é necessário em sistemas com alta carga?
sobes.tech IA
Resposta da IA
Circuit Breaker — é um padrão que ajuda a proteger o sistema contra falhas em cascata ao trabalhar com serviços ou componentes externos.
Princípio de funcionamento:
- Em estado normal, o Circuit Breaker permite as solicitações ao serviço externo.
- Se a quantidade de erros exceder um limite definido, o Circuit Breaker se «abre» e bloqueia futuras solicitações por um tempo.
- Após uma pausa, tenta restabelecer a conexão (estado semiaberto).
- Se as solicitações forem bem-sucedidas, o Circuit Breaker volta ao estado normal.
Para que serve:
- Previna sobrecarga no serviço que caiu.
- Reduz o tempo de espera da resposta, retornando rapidamente um erro.
- Melhora a estabilidade e resistência do sistema.
Exemplo em Go usando a biblioteca github.com/sony/gobreaker:
import (
"fmt"
"github.com/sony/gobreaker"
)
func main() {
cb := gobreaker.NewCircuitBreaker(gobreaker.Settings{})
result, err := cb.Execute(func() (interface{}, error) {
// chamada ao serviço externo
return "resposta", nil
})
if err != nil {
fmt.Println("Erro ou Circuit Breaker aberto:", err)
} else {
fmt.Println("Resposta bem-sucedida:", result)
}
}