Resilience-Muster: Circuit Breaker, Retries und Timeouts
Halten Sie verteilte Systeme bei Fehlern stabil – mit Timeouts, begrenzten Retries mit Backoff und dem Circuit-Breaker-Muster, das kaskadierende Ausfälle verhindert.
Resilience-Muster: Circuit Breaker, Retries und Timeouts ist eine kostenlose Linux Networking & TCP/IP for Developers-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Linux Networking & TCP/IP for Developers-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Linux Networking & TCP/IP for Developers-Kurs umfasst insgesamt 4 Lektionen.
Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.
Failure Is Normal
In a microservices network, calls cross machines and links that will fail. Resilience patterns keep one slow or broken service from dragging down the whole system.
Always Set Timeouts
A call with no timeout can hang forever, exhausting threads and connections. Every remote call must have a deadline.
import requests
r = requests.get('http://orders/api', timeout=2.0)The Danger of Naive Retries
Retrying immediately after a failure can amplify an outage — a struggling service gets hit even harder. Retries must be bounded and spaced.
Exponential Backoff
Increase the wait between attempts exponentially so a recovering service gets breathing room.
for attempt in range(5):
try:
return call()
except Exception:
wait = 2 ** attempt
time.sleep(wait)Adding Jitter
If many clients back off on the same schedule they retry in sync, creating a thundering herd. Add random jitter to spread the load.
import random
wait = (2 ** attempt) + random.uniform(0, 1)Retry Only Idempotent Operations
Retrying a non-idempotent write (like 'charge card') can double-execute it. Only retry safe operations, or use idempotency keys to make writes safe.
The Circuit Breaker
A circuit breaker tracks failures to a dependency. After too many, it opens and fails fast instead of waiting on a dead service.
This stops resources from piling up on a doomed call.
Breaker States
A circuit breaker has three states:
- Closed — calls flow normally
- Open — calls fail immediately
- Half-Open — a few test calls probe recovery
Breaker in Code
A minimal breaker counts failures and trips after a threshold, refusing calls until a cooldown elapses.
if breaker.is_open():
raise CircuitOpenError()
try:
result = call()
breaker.record_success()
except Exception:
breaker.record_failure()
raiseFallbacks and Graceful Degradation
When a breaker is open, return a sensible fallback: cached data, a default value, or a reduced feature set. A degraded response beats a total failure.
Bulkheads
The bulkhead pattern isolates resources (thread pools, connection pools) per dependency, so one saturated dependency cannot starve the others.
Quick Check
Test your resilience knowledge.
Recap
You can now build resilient service calls:
- Always set timeouts
- Bounded retries with exponential backoff + jitter
- Retry only idempotent operations
- Circuit breakers (closed/open/half-open) to fail fast
- Fallbacks and bulkheads for graceful degradation
This complements your load balancing, service mesh, and API gateway lessons.
Lerne Linux Networking & TCP/IP for Developers mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 12
- Lektionen
- 48
Häufig gestellte Fragen
Ist die Lektion „Resilience-Muster: Circuit Breaker, Retries und Timeouts“ kostenlos?
Ja — der vollständige Text von „Resilience-Muster: Circuit Breaker, Retries und Timeouts“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Linux Networking & TCP/IP for Developers-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Linux Networking & TCP/IP for Developers-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Resilience-Muster: Circuit Breaker, Retries und Timeouts“?
Halten Sie verteilte Systeme bei Fehlern stabil – mit Timeouts, begrenzten Retries mit Backoff und dem Circuit-Breaker-Muster, das kaskadierende Ausfälle verhindert. Du übst Linux Networking & TCP/IP for Developers mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Linux Networking & TCP/IP for Developers zu starten?
Keine Vorkenntnisse erforderlich. Linux Networking & TCP/IP for Developers auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Resilience-Muster: Circuit Breaker, Retries und Timeouts“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Linux Networking & TCP/IP for Developers-Lektion Code schreiben und ausführen?
Ja. Jede Linux Networking & TCP/IP for Developers-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Load-Balancing-Strategien
- Service-Mesh-Architekturen (Istio/Linkerd)
- API-Gateway und Edge-Routing
- Resilience-Muster: Circuit Breaker, Retries und Timeouts