Sobes.tech
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)
    }
}