Middle — Middle+
Pouvez-vous expliquer le principe de fonctionnement du Circuit Breaker et pourquoi il est nécessaire dans les systèmes à haute charge?
sobes.tech IA
Réponse de l'IA
Circuit Breaker — c'est un motif qui aide à protéger le système contre les défaillances en cascade lors de l'interaction avec des services ou composants externes.
Principe de fonctionnement :
- En état normal, le Circuit Breaker laisse passer les requêtes vers le service externe.
- Si le nombre d'erreurs dépasse un seuil défini, le Circuit Breaker se « coupe » et bloque les requêtes futures pendant un certain temps.
- Après une pause, il tente de rétablir la connexion (état semi-ouvert).
- Si les requêtes réussissent, le Circuit Breaker revient à son état normal.
À quoi ça sert :
- Empêche une surcharge du service en panne.
- Réduit le temps d'attente de la réponse, en renvoyant rapidement une erreur.
- Améliore la stabilité et la résilience du système.
Exemple en Go utilisant la bibliothèque github.com/sony/gobreaker :
import (
"fmt"
"github.com/sony/gobreaker"
)
func main() {
cb := gobreaker.NewCircuitBreaker(gobreaker.Settings{})
result, err := cb.Execute(func() (interface{}, error) {
// appel au service externe
return "réponse", nil
})
if err != nil {
fmt.Println("Erreur ou Circuit Breaker ouvert:", err)
} else {
fmt.Println("Réponse réussie:", result)
}
}