Sobes.tech
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:

  1. Chiuso (stato chiuso): Tutte le richieste passano normalmente.
  2. 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.
  3. 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.