Middle — Middle+
Können Sie das Funktionsprinzip des Circuit Breakers erklären und warum er in Systemen mit hoher Belastung benötigt wird?
sobes.tech KI
Antwort von AI
Circuit Breaker — ist ein Muster, das hilft, das System vor Kaskadenausfällen beim Arbeiten mit externen Diensten oder Komponenten zu schützen.
Funktionsprinzip:
- Im Normalzustand lässt der Circuit Breaker Anfragen an den externen Dienst durch.
- Wenn die Fehleranzahl einen festgelegten Schwellenwert überschreitet, «öffnet» sich der Circuit Breaker und blockiert weitere Anfragen für eine bestimmte Zeit.
- Nach einer Pause versucht er, die Verbindung wiederherzustellen (halboffener Zustand).
- Wenn die Anfragen erfolgreich sind, kehrt der Circuit Breaker in den Normalzustand zurück.
Wozu es dient:
- Verhindert Überlastung des ausgefallenen Dienstes.
- Verringert die Wartezeit auf eine Antwort, indem schnell ein Fehler zurückgegeben wird.
- Erhöht die Stabilität und Fehlertoleranz des Systems.
Beispiel in Go mit der Bibliothek github.com/sony/gobreaker:
import (
"fmt"
"github.com/sony/gobreaker"
)
func main() {
cb := gobreaker.NewCircuitBreaker(gobreaker.Settings{})
result, err := cb.Execute(func() (interface{}, error) {
// Aufruf des externen Dienstes
return "Antwort", nil
})
if err != nil {
fmt.Println("Fehler oder Circuit Breaker offen:", err)
} else {
fmt.Println("Erfolgreiche Antwort:", result)
}
}