Exponentielles Backoff erhöht die Verzögerung bei jedem Wiederholungsversuch – 0,5 s, 1 s, 2 s, 4 s – bis zu einem Maximalwert und gibt einem überlasteten Server so Zeit zur Erholung. Jitter randomisiert die Verzögerungen, da sonst alle Clients, die gleichzeitig einen Fehler erlitten haben, gleichzeitig einen erneuten Versuch unternehmen und so die Fehlerspitze reproduzieren würden.
Eine typische Vorgehensweise: Eine zufällige Wartezeit zwischen null und Basis × 2^Versuche, maximal jedoch eine bestimmte Zeit, wird nach einer festgelegten Anzahl von Versuchen oder einer bestimmten Gesamtzeit abgebrochen. Wiederholungsversuche erfolgen nur bei sicheren Methoden oder Schreibvorgängen, die durch einen Idempotenzschlüssel geschützt sind, und nur bei Fehlern, die möglicherweise nur vorübergehend sind: Timeouts, 429, 502, 503, 504.
Mehr Wiederholungsversuche bedeuten höhere Zuverlässigkeit. Unbegrenzte Wiederholungsversuche verstärken jedoch einen Ausfall: Jede Schicht, die drei Wiederholungsversuche unternimmt, erhöht die Last der darunterliegenden Schicht um ein Vielfaches. Wiederholungsbudgets, -obergrenzen und Schutzschalter existieren, weil Wiederholungsversuche selbst eine Fehlerquelle darstellen.
Konfigurieren Sie die Fault Injection API mit PUT /faults/v1/config – beispielsweise mit einer Fehlerrate von 0,5 und dem Status 503 – und rufen Sie dann wiederholt GET /faults/v1/target auf, um zu beobachten, wie Ihre Wiederholungsrichtlinie mit einer unzuverlässigen Abhängigkeit umgeht.
Diese Seite auf Englisch lesen
Alle Glossarbegriffe · Testtechniken · Alle 39 Mock-REST-APIs
Zuletzt aktualisiert