Sobes.tech
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)
    }
}