Junior — Middle
Può spiegare il meccanismo di funzionamento del pattern Circuit Breaker e il suo ruolo nel garantire l'affidabilità del sistema?
sobes.tech AI
Risposta dell'AI
Il pattern Circuit Breaker viene utilizzato per aumentare l'affidabilità dei sistemi distribuiti, prevenendo chiamate ripetute a un servizio che non funziona o risponde lentamente.
Come funziona:
- Chiuso (stato chiuso): Tutte le richieste passano normalmente.
- Aperto (stato aperto): Se il numero di errori supera una soglia, il Circuit Breaker si «apre» — le nuove richieste ricevono immediatamente un errore senza tentare di chiamare il servizio.
- Semi-aperto (stato semi-aperto): Dopo un certo tempo, il Circuit Breaker permette un numero limitato di richieste per verificare se il servizio si è ripristinato.
Se le richieste hanno successo, lo stato torna a Chiuso, altrimenti torna Aperto.
Questo previene il sovraccarico di un servizio non funzionante e permette al sistema di recuperare più rapidamente.
Esempio di utilizzo in Go (semplificato):
// Pseudo-codice
cb := NewCircuitBreaker()
if cb.AllowRequest() {
err := callRemoteService()
if err != nil {
cb.RecordFailure()
} else {
cb.RecordSuccess()
}
} else {
// Restituisce errore immediatamente, senza chiamare il servizio
}
In questo modo, il Circuit Breaker aiuta a rendere il sistema più resistente ai guasti.