Middle — Middle+
Spiega il principio di funzionamento e lo scopo del componente Circuit Breaker nei sistemi di affidabilità.
sobes.tech AI
Risposta dell'AI
Il componente Circuit Breaker viene utilizzato per aumentare l'affidabilità dei sistemi distribuiti, evitando tentativi ripetuti di chiamare un servizio non funzionante e riducendo il carico sul sistema.
Principio di funzionamento:
- Stato chiuso: Tutte le richieste passano normalmente.
- Stato aperto: Se il numero di errori supera una soglia, il Circuit Breaker si «apre» e blocca ulteriori richieste, restituendo immediatamente un errore o una risposta alternativa.
- Stato semiaperto: Dopo un certo tempo dall'apertura, permette un numero limitato di richieste per verificare se il servizio si è ripristinato.
Se le richieste hanno successo, torna allo stato chiuso, altrimenti si riapre.
Questo previene un carico eccessivo sul servizio fallito e dà tempo per il suo recupero, migliorando la stabilità complessiva del sistema.
Esempio in Go (semplificato):
// Pseudocodice
cb := NewCircuitBreaker(3, time.Minute) // 3 errori - si apre per 1 minuto
if cb.AllowRequest() {
err := callRemoteService()
if err != nil {
cb.RecordFailure()
} else {
cb.RecordSuccess()
}
} else {
// Ritorna errore subito, servizio non disponibile
}