Zum Inhalt springen

Exponentielles Backoff

Exponentielles Backoff vergrößert die Warteabstände zwischen Wiederholungsversuchen bis zu einer festgelegten Obergrenze.

API und Datenverträge

Exponentielles Backoff vergrößert die Wartezeit zwischen Wiederholungsversuchen um einen Faktor, meist bis zu einer Obergrenze. Nach einer vorübergehenden Störung muss eine Anwendung dadurch nicht sofort wieder dieselbe Anfrage senden. Backoff ist eine Abstandsregel innerhalb einer Retry-Strategie.

Warteabstand und Abbruch getrennt festlegen

Ein fiktives API-Beispiel beginnt nach einem fehlgeschlagenen Versuch mit einer Sekunde Wartezeit, verdoppelt den Abstand und begrenzt ihn auf vier Sekunden: 1 → 2 → 4 → 4 s. Das sind beispielhafte Grundabstände ohne Jitter, keine empfohlenen Betriebswerte. Jitter ergänzt eine zufällige Variation der tatsächlichen Wartezeit, damit viele Clients nicht gleichzeitig erneut anfragen.

Die Obergrenze beendet die Wiederholungen nicht. Anzahl der Versuche, gesamtes Zeitbudget und zulässige Fehler müssen zusätzlich feststehen. Ein ungültiger Auftrag wird durch längeres Warten nicht gültig; ein Auftrag mit möglicher Nebenwirkung muss sicher wiederholbar sein.

Wiederholt bereits die Clientbibliothek, kann eine weitere Schleife in der Anwendung die Zahl der Aufrufe vervielfachen. Das Team muss deshalb beide Ebenen zusammen betrachten.

Quellen