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.
Wiederholversuche
Das AWS SDK for Rust bietet ein standardmäßiges Wiederholungsverhalten und anpassbare Konfigurationsoptionen. Ruft auf, um AWS-Services gelegentlich unerwartete Ausnahmen zurückzugeben. Bestimmte Arten von Fehlern, wie Drosselungen oder vorübergehende Fehler, können erfolgreich sein, wenn der Aufruf erneut versucht wird.
Das Wiederholungsverhalten kann global mithilfe von Umgebungsvariablen oder Einstellungen in der gemeinsam genutzten Datei konfiguriert werden. AWS config
Informationen zu diesem Ansatz finden Sie unter Verhalten bei Wiederholungsversuchen im Referenzhandbuch AWS SDKs und im Tools-Referenzhandbuch. Es enthält auch detaillierte Informationen zu Implementierungen von Wiederholungsstrategien und dazu, wie Sie sich für eine Strategie entscheiden können.
Alternativ können diese Optionen auch in Ihrem Code konfiguriert werden, wie in den folgenden Abschnitten gezeigt.
Standardkonfiguration für Wiederholungsversuche
Jeder Service-Client verwendet standardmäßig die Konfiguration der standard
Wiederholungsstrategie, die in der Struktur bereitgestellt wird. RetryConfig
Nur einige Arten von Fehlern werden von der als wiederholbar angesehen. SDKs Beispiele für Fehler, die wiederholt werden können, sind:
-
Socket-Timeouts
-
Drosselung auf der Serviceseite
-
vorübergehende Dienstfehler wie HTTP 5XX-Antworten
Die folgenden Beispiele gelten nicht als wiederholbar:
-
Fehlende oder ungültige Parameter
-
Authentifizierungs-/Sicherheitsfehler
-
Ausnahmen bei Fehlkonfigurationen
Sie können die standard
Wiederholungsstrategie anpassen, indem Sie die maximale Anzahl an Versuchen, Verzögerungen und die Backoff-Konfiguration festlegen.
Maximale Anzahl an Versuchen
Sie können die maximale Anzahl der Versuche in Ihrem Code anpassen, indem Sie eine Änderung RetryConfig
aws_config::defaults
:
const CUSTOM_MAX_ATTEMPTS: u32 = 5;
let retry_config = RetryConfig::standard()
// Set max attempts. When max_attempts is 1, there are no retries.
// This value MUST be greater than zero.
// Defaults to 3.
.with_max_attempts(CUSTOM_MAX_ATTEMPTS);
let config = aws_config::defaults(BehaviorVersion::latest())
.retry_config(retry_config)
.load()
.await;
Verzögerungen und Rückschläge
Wenn ein erneuter Versuch erforderlich ist, wartet die standardmäßige Wiederholungsstrategie, bevor sie den nächsten Versuch durchführt. Die Verzögerung beim ersten Versuch ist gering, nimmt aber bei späteren Wiederholungen exponentiell zu. Die maximale Verzögerung ist begrenzt, sodass sie nicht zu groß wird.
Zufälliger Jitter wird auf die Verzögerungen zwischen allen Versuchen angewendet. Der Jitter trägt dazu bei, die Auswirkungen großer Flotten zu mildern, die zu erneuten Stürmen führen können. Eine eingehendere Erläuterung zu exponentiellem Backoff und Jitter finden Sie unter Exponentieller
Sie können die Verzögerungseinstellungen in Ihrem Code anpassen, indem Sie eine Änderung an Ihrem Code angeben. RetryConfig
aws_config::defaults
Der folgende Code legt die Konfiguration so fest, dass der erste Wiederholungsversuch um bis zu 100 Millisekunden verzögert wird und dass die maximale Zeitspanne zwischen jedem Wiederholungsversuch 5 Sekunden beträgt.
let retry_config = RetryConfig::standard()
// Defaults to 1 second.
.with_initial_backoff(Duration::from_millis(100))
// Defaults to 20 seconds.
.with_max_backoff(Duration::from_secs(5));
let config = aws_config::defaults(BehaviorVersion::latest())
.retry_config(retry_config)
.load()
.await;
Adaptiver Wiederholungsmodus
Als Alternative zur Moduswiederholungsstrategie ist die standard
adaptive
Moduswiederholungsstrategie ein fortschrittlicher Ansatz, bei dem nach der idealen Anforderungsrate gesucht wird, um Drosselungsfehler zu minimieren.
Anmerkung
Adaptive Wiederholungen sind ein erweiterter Wiederholungsmodus. Die Verwendung dieser Strategie wird in der Regel nicht empfohlen. Weitere Informationen finden Sie unter Verhalten bei Wiederholungsversuchen im Referenzhandbuch AWS SDKs und im Tools-Referenzhandbuch.
Adaptive Wiederholungen umfassen alle Funktionen von Standardwiederholungen. Es fügt einen clientseitigen Ratenbegrenzer hinzu, der die Rate gedrosselter Anfragen im Vergleich zu Anfragen ohne Drosselung misst. Außerdem wird der Datenverkehr so begrenzt, dass versucht wird, innerhalb einer sicheren Bandbreite zu bleiben, sodass im Idealfall keine Drosselungsfehler auftreten.
Die Rate passt sich in Echtzeit an sich ändernde Betriebsbedingungen und Verkehrsmuster an und kann die Verkehrsrate entsprechend erhöhen oder verringern. Entscheidend ist, dass der Ratenbegrenzer erste Versuche in Szenarien mit hohem Verkehrsaufkommen verzögern kann.
Sie können die adaptive
Wiederholungsstrategie im Code auswählen, indem Sie Folgendes angeben: RetryConfig
let config = aws_config::defaults(BehaviorVersion::latest())
.retry_config(RetryConfig::adaptive())
.load()
.await;