Sobes.tech
Junior — Middle

Pouvez-vous expliquer le mécanisme de fonctionnement du pattern Circuit Breaker et son rôle dans la garantie de la fiabilité du système?

sobes.tech IA

Réponse de l'IA

Le motif Circuit Breaker est utilisé pour améliorer la fiabilité des systèmes distribués, en évitant les appels répétés à un service qui ne fonctionne pas ou répond lentement.

Comment il fonctionne :

  1. Fermé (état fermé) : Toutes les requêtes passent comme d'habitude.
  2. Ouvert (état ouvert) : Si le nombre d'erreurs dépasse un seuil, le Circuit Breaker « s'ouvre » — les nouvelles requêtes reçoivent immédiatement une erreur sans tenter d'appeler le service.
  3. Semi-ouvert (état semi-ouvert) : Après un certain temps, le Circuit Breaker permet un nombre limité de requêtes pour vérifier si le service s'est rétabli.

Si les requêtes réussissent, l'état revient à Fermé, sinon il revient à Ouvert.

Cela empêche une surcharge du service défaillant et permet au système de se rétablir plus rapidement.

Exemple d'utilisation en Go (simplifié) :

// Pseudo-code
cb := NewCircuitBreaker()

if cb.AllowRequest() {
    err := callRemoteService()
    if err != nil {
        cb.RecordFailure()
    } else {
        cb.RecordSuccess()
    }
} else {
    // Retourner une erreur immédiatement, sans appeler le service
}

Ainsi, le Circuit Breaker aide à rendre le système plus résilient face aux défaillances.