Teilen über


Implementieren einer Wiederholungsrichtlinie mit Java

Jede Anwendung, die in der Cloud ausgeführt wird oder mit Remotediensten und Ressourcen kommuniziert, muss vorübergehende Fehler verarbeiten können. Es ist üblich, dass bei diesen Anwendungen Fehler auftreten. Gründe dafür könnten ein vorübergehender Verlust der Netzwerkkonnektivität, ein Anforderungstimeout, das eintritt, wenn ein Dienst oder eine Ressource stark beansprucht wird, oder andere Faktoren sein. Entwickler sollten Anwendungen erstellen, die vorübergehende Fehler transparent verarbeiten, um die Stabilität und Resilienz zu verbessern.

In diesem Artikel erfahren Sie, wie Sie mithilfe der Azure Storage-Clientbibliothek für Java eine Wiederholungsrichtlinie für eine Anwendung konfigurieren, die eine Verbindung mit Azure Blob Storage herstellt. Wiederholungsrichtlinien definieren, wie die Anwendung fehlgeschlagene Anforderungen verarbeitet, und sollten immer angepasst werden, damit sie den geschäftlichen Anforderungen der Anwendung und der Art des Fehlers entsprechen.

Konfigurieren von Wiederholungsoptionen

Wiederholungsrichtlinien für Blob Storage werden programmgesteuert konfiguriert und bieten Kontrolle darüber, wie Wiederholungsoptionen auf verschiedene Dienstanforderungen und Szenarien angewendet werden. Beispielsweise kann eine Web-App, die Anforderungen basierend auf der Benutzerinteraktion ausgibt, eine Richtlinie mit weniger Wiederholungen und kürzeren Verzögerungen implementieren. Dadurch wird die Reaktionsfähigkeit erhöht und der Benutzer benachrichtigt, wenn ein Fehler auftritt. Alternativ kann eine App oder Komponente, die Batchanforderungen im Hintergrund ausführt, die Anzahl der Wiederholungen erhöhen und eine exponentielle Backoff-Strategie verwenden. Somit wird ein erfolgreicher Abschluss der Anforderungszeit ermöglicht.

In der folgenden Tabelle sind die Parameter aufgeführt, die beim Erstellen einer RequestRetryOptions-Instanz verfügbar sind zusammen mit dem Typ, einer kurzen Beschreibung und dem Standardwert, wenn Sie keine Änderungen vornehmen. Sie sollten die Werte dieser Eigenschaften proaktiv optimieren, um die Anforderungen Ihrer App zu erfüllen.

Eigenschaft Typ BESCHREIBUNG Standardwert
retryPolicyType RetryPolicyType Optional. Die Methode, die zum Berechnen von Wiederholungsverzögerungen verwendet werden soll EXPONENTIAL
maxTries Ganzzahl Optional. Die maximale Anzahl der Wiederholungsversuche, bevor der Vorgang abgebrochen wird. 4
tryTimeoutInSeconds Ganzzahl Optional. Maximal zulässige Zeit, bevor eine Anforderung abgebrochen und als fehlgeschlagen betrachtet wird. Beachten Sie, dass das Timeout für die Anforderung eines Vorgangs gilt, nicht das Ende des Vorgangs. Dieser Wert sollte auf der für den Hostcomputer verfügbaren Bandbreite und der Nähe zum Speicherdienst basieren. Ein guter Ausgangspunkt kann 60 Sekunden pro MB der erwarteten Größe der Payload sein. Integer.MAX_VALUE (Sekunden)
retryDelayInMs Lang Optional. Gibt die Verzögerung an, die vor dem Wiederholen eines Vorgangs verwendet werden soll. 4 ms für EXPONENTIAL, 30 ms für FIXED
maxRetryDelayInMs Lang Optional. Gibt die maximale Verzögerung an, die vor dem Wiederholen eines Vorgangs zulässig ist. 120 ms
secondaryHost String Optional. Endpunkt des sekundären Speicherkontos zum Wiederholen von Anforderungen. Bevor Sie diesen Wert festlegen, sollten Sie die Probleme beim Lesen veralteter und potenziell inkonsistenter Daten verstehen. Weitere Informationen erhalten Sie unter Verwenden von Georedundanz zum Entwerfen hochverfügbarer Anwendungen. Keine

Im folgenden Codebeispiel konfigurieren wir die Wiederholungsoptionen in einer Instanz von RequestRetryOptions und übergeben sie an BlobServiceClientBuilder, um ein Clientobjekt zu erstellen:

RequestRetryOptions retryOptions = new RequestRetryOptions(RetryPolicyType.FIXED, 2, 3, 1000L, 1500L, null);
BlobServiceClient client = new BlobServiceClientBuilder()
        .endpoint("https://<storage-account-name>.blob.core.windows.net/")
        .credential(credential)
        .retryOptions(retryOptions)
        .buildClient();

In diesem Beispiel verwendet jede Dienstanforderung, die vom BlobServiceClient-Objekt ausgestellt wurde, die Wiederholungsoptionen wie in der RequestRetryOptions-Instanz definiert. Diese Richtlinie gilt für Clientanforderungen. Basierend auf den Anforderungen Ihrer App können Sie verschiedene Wiederholungsstrategien für Dienstclients konfigurieren.

Nächste Schritte

  • Dieser Artikel ist Teil des Blob Storage-Entwicklerleitfadens für Java. Die vollständige Liste der Artikel im Entwicklerleitfaden finden Sie unter Erstellen Ihrer App.
  • Ein Leitfaden zur Architektur und allgemeine bewährte Methoden für Wiederholungsrichtlinien finden Sie unter Behandeln vorübergehender Fehler.
  • Leitfäden zum Implementieren eines Wiederholungsmusters für vorübergehende Fehler finden Sie unter Wiederholungsmuster.