Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Wiederholungsverhalten - AWS SDKs und Tools

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Wiederholungsverhalten

Anmerkung

Hilfe zum Verständnis des Layouts von Einstellungsseiten oder zur Interpretation der nachfolgenden Tabelle Support by AWS SDKs und Tools finden Sie unterDie Einstellungsseiten dieses Handbuchs verstehen.

Das Wiederholungsverhalten umfasst Einstellungen, die festlegen, wie SDKs versucht wird, die Wiederherstellung nach Fehlern aufgrund von Anfragen an AWS-Services

Konfigurieren Sie diese Funktionalität wie folgt:

retry_mode- Einstellung für gemeinsam genutzte AWS config Dateien
AWS_RETRY_MODE- Umgebungsvariable
aws.retryMode- JVM-Systemeigenschaft: Nur Java/Kotlin

Gibt an, wie das SDK oder das Entwicklertool versucht, es erneut zu versuchen.

Standardwert: Dieser Wert ist spezifisch für Ihr SDK. Den Standardwert finden Sie in Ihrem spezifischen SDK-Handbuch oder in der Codebasis Ihres SDKretry_mode.

Zulässige Werte:

  • standard— (Empfohlen) Der empfohlene Satz von Wiederholungsregeln für alle. AWS SDKs Dieser Modus umfasst einen Standardsatz von Fehlern, die wiederholt werden, und passt die Anzahl der Wiederholungen automatisch an, um die Verfügbarkeit und Stabilität zu maximieren. Dieser Modus ist sicher für die Verwendung in Mehrmandantenanwendungen. Die standardmäßige maximale Anzahl von Versuchen in diesem Modus beträgt drei, sofern nicht max_attempts ausdrücklich konfiguriert.

  • adaptive— Ein Wiederholungsmodus, der nur für spezielle Anwendungsfälle geeignet ist und die Funktionalität des Standardmodus sowie die automatische clientseitige Ratenbegrenzung umfasst. Dieser Wiederholungsmodus wird für Anwendungen mit mehreren Mandanten nicht empfohlen, es sei denn, Sie achten darauf, Anwendungsmandanten zu isolieren. Weitere Informationen finden Sie unter Wählen Sie zwischen den Modi standard und adaptive versuchen Sie es erneut. Dieser Modus ist experimentell und könnte das Verhalten in future ändern.

  • legacy— (Nicht empfohlen) Spezifisch für Ihr SDK (lesen Sie in Ihrem spezifischen SDK-Handbuch oder in der Codebasis Ihres SDK nach).

max_attempts- Einstellung für gemeinsam genutzte AWS config Dateien
AWS_MAX_ATTEMPTS- Umgebungsvariable
aws.maxAttempts- JVM-Systemeigenschaft: Nur Java/Kotlin

Gibt die maximale Anzahl an Versuchen an, die bei einer Anfrage unternommen werden können.

Standardwert: Wenn dieser Wert nicht angegeben ist, hängt sein Standardwert vom Wert der retry_mode Einstellung ab:

  • Falls retry_mode ja legacy — Verwendet einen für Ihr SDK spezifischen Standardwert (den max_attempts Standardwert finden Sie in Ihrem spezifischen SDK-Handbuch oder in der Codebasis Ihres SDK).

  • Falls retry_mode ja standard — Unternimmt drei Versuche.

  • Falls retry_mode ja adaptive — Führt drei Versuche durch.

Gültige Werte: Zahl größer als 0.

Wählen Sie zwischen den Modi standard und adaptive versuchen Sie es erneut

Wir empfehlen Ihnen, den standard Wiederholungsmodus zu verwenden, es sei denn, Sie sind sich sicher, dass Ihre Verwendung dafür besser geeignet ist. adaptive

Anmerkung

In diesem adaptive Modus wird davon ausgegangen, dass Sie Clients auf der Grundlage des Bereichs, in dem der Back-End-Dienst Anfragen drosseln kann, zusammenfassen. Wenn Sie dies nicht tun, können Drosselungen in einer Ressource Anfragen für eine nicht verwandte Ressource verzögern, wenn Sie denselben Client für beide Ressourcen verwenden.

Standard Adaptiv
Anwendungsfälle: Alle. Anwendungsfälle für Anwendungen:
  1. Unempfindlich gegenüber Latenz.

  2. Der Client greift nur auf eine einzelne Ressource zu, oder Sie stellen Logik bereit, um Ihre Clients getrennt nach der Dienstressource, auf die zugegriffen wird, in einem Pool zusammenzufassen.

Unterstützt Circuit-Breaking, um zu verhindern, dass das SDK es bei Ausfällen erneut versucht. Unterstützt Circuit-Breaking, um zu verhindern, dass das SDK es bei Ausfällen erneut versucht.
Verwendet bei Ausfällen einen exponentiellen Jitter-Backoff. Verwendet dynamische Backoff-Dauern, um zu versuchen, die Anzahl der fehlgeschlagenen Anfragen zu minimieren, als Gegenleistung für die mögliche Erhöhung der Latenz.
Verzögert niemals den ersten Anforderungsversuch, sondern nur die Wiederholungsversuche. Kann den ersten Anforderungsversuch drosseln oder verzögern.

Wenn Sie den adaptive Modus verwenden möchten, muss Ihre Anwendung Clients erstellen, die für jede Ressource konzipiert sind, die möglicherweise gedrosselt wird. Eine Ressource ist in diesem Fall besser abgestimmt, als nur an jede einzelne Ressource zu denken. AWS-Service AWS-Services kann zusätzliche Dimensionen haben, die sie verwenden, um Anfragen zu drosseln. Lassen Sie uns den Amazon DynamoDB-Service als Beispiel verwenden. DynamoDB verwendet AWS-Region plus die Tabelle, auf die zugegriffen wird, um Anfragen zu drosseln. Das bedeutet, dass eine Tabelle, auf die Ihr Code zugreift, möglicherweise stärker gedrosselt wird als andere. Wenn Ihr Code denselben Client für den Zugriff auf alle Tabellen verwendet hat und Anfragen an eine dieser Tabellen gedrosselt werden, reduziert der adaptive Wiederholungsmodus die Anforderungsrate für alle Tabellen. Ihr Code sollte so konzipiert sein, dass er einen Client pro Paar hat. Region-and-table Wenn Sie bei der Verwendung des adaptive Modus eine unerwartete Latenz feststellen, lesen Sie in der spezifischen AWS Dokumentation des von Ihnen verwendeten Dienstes nach.

Einzelheiten zur Implementierung des Wiederholungsmodus

AWS SDKs Sie verwenden Token-Buckets, um zu entscheiden, ob eine Anfrage erneut versucht werden soll und (im Fall des adaptive Wiederholungsmodus) wie schnell Anfragen gesendet werden sollen. Zwei Token-Buckets werden vom SDK verwendet: ein Token-Bucket für Wiederholungsversuche und ein Token-Bucket für die Anforderungsrate.

  • Der Token-Bucket für Wiederholungen wird verwendet, um zu bestimmen, ob das SDK Wiederholungsversuche vorübergehend deaktivieren soll, um die Upstream- und Downstream-Dienste bei Ausfällen zu schützen. Token werden aus dem Bucket abgerufen, bevor Wiederholungsversuche unternommen werden, und Token werden an den Bucket zurückgegeben, wenn die Anfragen erfolgreich sind. Wenn der Bucket leer ist, wenn ein Wiederholungsversuch unternommen wird, versucht das SDK die Anfrage nicht erneut.

  • Der Token-Bucket für die Anforderungsrate wird nur im adaptive Wiederholungsmodus verwendet, um die Geschwindigkeit zu bestimmen, mit der Anfragen gesendet werden. Token werden aus dem Bucket abgerufen, bevor eine Anfrage gesendet wird, und Token werden mit einer dynamisch bestimmten Rate an den Bucket zurückgegeben, die auf Drosselungsantworten basiert, die vom Service zurückgegeben werden.

Im Folgenden finden Sie den allgemeinen Pseudocode für den Modus und den Wiederholungsmodus: standard adaptive

MakeSDKRequest() { attempts = 0 loop { GetSendToken() response = SendHTTPRequest() RequestBookkeeping(response) if not Retryable(response) return response attempts += 1 if attempts >= MAX_ATTEMPTS: return response if not HasRetryQuota(response) return response delay = ExponentialBackoff(attempts) sleep(delay) } }

Im Folgenden finden Sie weitere Informationen zu den im Pseudocode verwendeten Komponenten:

GetSendToken:

Dieser Schritt wird nur im adaptive Wiederholungsmodus verwendet. In diesem Schritt wird ein Token aus dem Token-Bucket für die Anforderungsrate abgerufen. Wenn ein Token nicht verfügbar ist, wartet es, bis eines verfügbar wird. In Ihrem SDK stehen möglicherweise Konfigurationsoptionen zur Verfügung, mit denen die Anfrage fehlschlagen kann, anstatt zu warten. Tokens im Bucket werden mit einer Geschwindigkeit aufgefüllt, die dynamisch auf der Grundlage der Anzahl der vom Client empfangenen Drosselungsantworten bestimmt wird.

SendHTTPRequest:

In diesem Schritt wird die Anfrage an gesendet. AWS Die meisten AWS SDKs verwenden eine HTTP-Bibliothek, die Verbindungspools verwendet, um eine bestehende Verbindung wiederzuverwenden, wenn eine HTTP-Anfrage gestellt wird. Im Allgemeinen werden Verbindungen wiederverwendet, wenn eine Anfrage aufgrund von Drosselungsfehlern fehlgeschlagen ist, aber nicht, wenn eine Anfrage aufgrund eines vorübergehenden Fehlers fehlschlägt.

RequestBookkeeping:

Token werden dem Token-Bucket hinzugefügt, wenn die Anfrage erfolgreich ist. Nur im adaptive Wiederholungsmodus wird die Füllrate des Token-Buckets für die Anforderungsrate auf der Grundlage der Art der erhaltenen Antwort aktualisiert.

Retryable:

In diesem Schritt wird anhand der folgenden Kriterien bestimmt, ob eine Antwort erneut versucht werden kann:

  • Den HTTP-Statuscode .

  • Der vom Dienst zurückgegebene Fehlercode.

  • Verbindungsfehler, definiert als jeder vom SDK empfangene Fehler, bei dem keine HTTP-Antwort vom Dienst empfangen wird.

Vorübergehende Fehler (HTTP-Statuscodes 400, 408, 500, 502, 503 und 504) und Drosselungsfehler (HTTP-Statuscodes 400, 403, 429, 502, 503 und 509) können alle potenziell wiederholt werden. Das SDK-Wiederholungsverhalten wird in Kombination mit Fehlercodes oder anderen Daten aus dem Dienst bestimmt.

MAX_ATTEMPTS:

Die Standardanzahl der maximalen Versuche wird durch die retry_mode Einstellung festgelegt, sofern sie nicht durch die Einstellung überschrieben wird. max_attempts

HasRetryQuota

In diesem Schritt wird ein Token aus dem Token-Bucket für Wiederholungsversuche abgerufen. Wenn der Token-Bucket für Wiederholungen leer ist, wird die Anfrage nicht erneut versucht.

ExponentialBackoff

Bei einem Fehler, der erneut versucht werden kann, wird die Verzögerung beim erneuten Versuch anhand eines verkürzten exponentiellen Backoffs berechnet. Die SDKs Verwendung eines verkürzten binären exponentiellen Backoffs mit Jitter. Der folgende Algorithmus zeigt, wie die Zeit bis zum Schlafen (in Sekunden) für eine Antwort auf eine Anfrage definiert wird: i

seconds_to_sleep_i = min(b*r^i, MAX_BACKOFF)

Im vorherigen Algorithmus gelten die folgenden Werte:

b = random number within the range of: 0 <= b <= 1

r = 2

MAX_BACKOFF = 20 secondsfür die meisten SDKs. Weitere Informationen finden Sie in Ihrem spezifischen SDK-Leitfaden oder Quellcode.

Support von AWS SDKs und Tools

Im Folgenden werden die in diesem Thema beschriebenen Funktionen und Einstellungen SDKs unterstützt. Alle teilweisen Ausnahmen werden vermerkt. Alle Einstellungen für JVM-Systemeigenschaften werden AWS SDK for Kotlin nur von AWS SDK für Java und vom unterstützt.

SDK Unterstützt Hinweise oder weitere Informationen
AWS CLI v2 Ja
SDK for C++ Ja
SDK for Go V2 (1.x) Ja
SDK for Go 1.x (V1) Nein
SDK for Java 2.x Ja
SDK for Java 1.x Ja JVM-Systemeigenschaften: anstelle von verwendenaws.maxAttempts; com.amazonaws.sdk.maxAttempts anstelle von verwendencom.amazonaws.sdk.retryMode. aws.retryMode
SDK für 3.x JavaScript Ja
SDK für 2.x JavaScript Nein Unterstützt eine maximale Anzahl von Wiederholungsversuchen, exponentielles Backoff mit Jitter und eine Option für eine benutzerdefinierte Methode für Wiederholungs-Backoff.
SDK für Kotlin Ja
SDK for .NET 3.x Ja
SDK for PHP 3.x Ja
SDK for Python (Boto3) Ja
SDK for Ruby 3.x Ja
SDK für Rust Ja
SDK für Swift Ja
Tools für PowerShell Ja
DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.