Middle — Middle+
Può spiegare il principio di funzionamento del Circuit Breaker e perché è necessario in sistemi ad alta richiesta?
sobes.tech AI
Risposta dell'AI
Circuit Breaker — è un pattern che aiuta a proteggere il sistema da fallimenti a cascata durante l'interazione con servizi o componenti esterni.
Principio di funzionamento:
- In stato normale, il Circuit Breaker permette le richieste al servizio esterno.
- Se il numero di errori supera una soglia impostata, il Circuit Breaker si «apre» e blocca le richieste future per un certo periodo.
- Dopo una pausa, tenta di ristabilire la connessione (stato semiaperto).
- Se le richieste hanno successo, il Circuit Breaker torna allo stato normale.
A cosa serve:
- Previene il sovraccarico del servizio in panne.
- Riduce i tempi di attesa della risposta, restituendo rapidamente un errore.
- Migliora la stabilità e la resilienza del sistema.
Esempio in Go usando la libreria github.com/sony/gobreaker:
import (
"fmt"
"github.com/sony/gobreaker"
)
func main() {
cb := gobreaker.NewCircuitBreaker(gobreaker.Settings{})
result, err := cb.Execute(func() (interface{}, error) {
// chiamata al servizio esterno
return "risposta", nil
})
if err != nil {
fmt.Println("Errore o Circuit Breaker aperto:", err)
} else {
fmt.Println("Risposta riuscita:", result)
}
}