Circuit Breaker
Ein Circuit Breaker schützt Systeme vor Überlastung und Ausfällen.
Klassifikation
- KomplexitätMittel
- AuswirkungTechnisch
- EntscheidungstypArchitektur
- OrganisationsreifeFortgeschritten
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Falsche Konfiguration kann zu Ausfällen führen
- Übermäßige Anzahl von Fehlern kann zu Verwirrung führen
- Abhängigkeit von anderen Systemen
- Regelmäßige Überwachung der Leistung
- Schulung des Teams in den Lösungen
- Dokumentation der Konfiguration
I/O & Ressourcen
- Eingehende API-Anfragen
- Systemressourcen
- Überwachungsdaten
- Stabilität des Systems
- Feedback-Schleifen
- Benachrichtigung bei Fehlern
Beschreibung
Ein Circuit Breaker ist ein Architekturprinzip, das verwendet wird, um sicherzustellen, dass, wenn ein Dienst ausfällt oder eine Verzögerung auftritt, dies nicht zu einem Kaskadeneffekt in anderen Diensten führt. Es sorgt für Stabilität in verteilten Systemen.
✔Vorteile
- Verbesserte Systemstabilität
- Reduzierung der Ausfallzeiten
- Bessere Benutzererfahrung
✖Limitationen
- Kann komplex in der Implementierung sein
- Muss ordnungsgemäß konfiguriert werden
- Nicht für alle Anwendungsszenarien geeignet
Trade-offs
Metriken
- Systemausfallrate
Wie häufig Systemausfälle auftreten.
- Reaktionszeit
Die Zeit, die ein Dienst benötigt, um auf Anfragen zu reagieren.
- Benutzerzufriedenheit
Das Feedback der Benutzer hinsichtlich der Systemleistung.
Beispiele & Implementierungen
Beispiel 1
Ein Online-Shop schützt seine Zahlungsdienste durch einen Circuit Breaker.
Beispiel 2
Ein Streaming-Dienst nutzt den Circuit Breaker, um Ausfälle zu begrenzen.
Beispiel 3
Ein soziales Netzwerk schützt User-Daten durch ein Circuit-Design.
Implementierungsschritte
Bestimmung der Anforderungen
Auswahl der Technologien
Implementierung und Test
⚠️ Technische Schulden & Engpässe
Tech Debt
- Veraltete Technologien verwenden.
- Mangelnde Dokumentation.
- Unzureichende Tests.
Bekannte Engpässe
Beispiele für Missbrauch
- Zu hohe Fehlerraten ignorieren.
- Falsche Konfiguration des Circuit Breakers.
- Vorzeitiges Schließen der Schaltung.
Typische Fallen
- Sich auf Standardwerte verlassen.
- Fehlendes Monitoring einrichten.
- Implementierung ohne Testphase.
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Technologische Abhängigkeiten
- • Team-Abstimmungen erforderlich
- • Limitierte Ressourcenverfügbarkeit