Zum Inhalt springen

Circuit Breaker

Ein Circuit Breaker unterbricht Aufrufe an einen gestörten Dienst und lässt später begrenzte Probeaufrufe zu.

API und Datenverträge

Ein Circuit Breaker schützt eine Anwendung davor, einen gestörten abhängigen Dienst immer weiter aufzurufen. Er wertet ausgewählte Fehler aus und entscheidet, ob weitere Aufrufe durchgelassen werden. Nach einer festgelegten Wartephase können begrenzte Probeaufrufe die Erholung prüfen.

Drei Zustände, unterschiedliche Freigaben

Im Zustand closed passieren Aufrufe normal. Bei open werden sie ohne Weiterleitung an den betroffenen Dienst abgewiesen. half-open lässt nur begrenzte Probeaufrufe zu; deren Ergebnis entscheidet über erneutes Öffnen oder die Rückkehr zum normalen Betrieb.

In einem fiktiven Kundenportal fällt der PDF-Berichtsdienst aus. Der geöffnete Circuit Breaker verhindert neue Aufrufe an diesen Dienst, und das Portal zeigt dessen vorübergehende Nichtverfügbarkeit. Er speichert damit noch keinen Berichtsauftrag in einer Warteschlange und repariert den Dienst nicht.

Das Team legt Fehlerarten, Auswertungsfenster, Schwelle, Wartephase und Ersatzverhalten fest. Ein Timeout begrenzt die Dauer eines einzelnen Aufrufs; ein Retry startet einen weiteren Versuch. Der Circuit Breaker entscheidet dagegen über dessen Weiterleitung. Diese Mechanismen können zusammenwirken, brauchen aber aufeinander abgestimmte Regeln.

Quellen