Delen via


Beleid voor opnieuw proberen implementeren met Java

Elke toepassing die in de cloud wordt uitgevoerd of communiceert met externe services en resources, moet tijdelijke fouten kunnen afhandelen. Het is gebruikelijk dat deze toepassingen fouten ondervinden vanwege een tijdelijk verlies van netwerkconnectiviteit, een time-out van aanvragen wanneer een service of resource bezet is of andere factoren. Ontwikkelaars moeten toepassingen bouwen om tijdelijke fouten transparant af te handelen om de stabiliteit en tolerantie te verbeteren.

In dit artikel leert u hoe u de Azure Storage-clientbibliotheek voor Java gebruikt om een beleid voor opnieuw proberen te configureren voor een toepassing die verbinding maakt met Azure Blob Storage. Beleid voor opnieuw proberen definieert hoe de toepassing mislukte aanvragen verwerkt en moet altijd worden afgestemd op de bedrijfsvereisten van de toepassing en de aard van de fout.

Opties voor opnieuw proberen configureren

Beleid voor opnieuw proberen voor Blob Storage wordt programmatisch geconfigureerd en biedt controle over hoe opties voor opnieuw proberen worden toegepast op verschillende serviceaanvragen en scenario's. Een web-app die aanvragen uitgeeft op basis van gebruikersinteractie kan bijvoorbeeld een beleid implementeren met minder nieuwe pogingen en kortere vertragingen om de reactiesnelheid te verhogen en de gebruiker op de hoogte te stellen wanneer er een fout optreedt. Een app of onderdeel waarop batchaanvragen op de achtergrond worden uitgevoerd, kan ook het aantal nieuwe pogingen verhogen en een exponentiƫle uitstelstrategie gebruiken om de aanvraagtijd te laten voltooien.

De volgende tabel bevat de parameters die beschikbaar zijn bij het maken van een RequestRetryOptions-exemplaar , samen met het type, een korte beschrijving en de standaardwaarde als u geen wijzigingen aanbrengt. U moet proactief zijn bij het afstemmen van de waarden van deze eigenschappen om te voldoen aan de behoeften van uw app.

Eigenschap Type Description Default value
retryPolicyType RetryPolicyType Optioneel. De methode die moet worden gebruikt voor het berekenen van vertragingen voor opnieuw proberen. EXPONENTIEEL
maxTries Geheel getal Optioneel. Het maximum aantal nieuwe pogingen voordat u het opgeeft. 4
tryTimeoutInSeconds Geheel getal Optioneel. Maximale tijd die is toegestaan voordat een aanvraag wordt geannuleerd en ervan wordt uitgegaan dat deze is mislukt. Houd er rekening mee dat de time-out van toepassing is op de bewerkingsaanvraag, niet op het einde van de algehele bewerking. Deze waarde moet zijn gebaseerd op de bandbreedte die beschikbaar is voor de hostcomputer en de nabijheid van de Storage-service. Een goed beginpunt kan 60 seconden per MB van de verwachte nettoladinggrootte zijn. Integer.MAX_WAARDE (seconden)
retryDelayInMs Lang Optioneel. Hiermee geeft u de hoeveelheid vertraging op die moet worden gebruikt voordat u een bewerking opnieuw probeert uit te voeren. 4 ms voor EXPONENTIEEL, 30 ms voor VAST
maxRetryDelayInMs Lang Optioneel. Hiermee geeft u de maximale vertraging op die is toegestaan voordat u een bewerking opnieuw probeert uit te voeren. 120 ms
secondaryHost String Optioneel. Eindpunt van secundair opslagaccount om aanvragen opnieuw uit te voeren. Voordat u deze waarde instelt, moet u inzicht krijgen in de problemen met het lezen van verouderde en mogelijk inconsistente gegevens. Zie Georedundantie gebruiken om maximaal beschikbare toepassingen te ontwerpen voor meer informatie. Geen

In het volgende codevoorbeeld configureren we de opties voor opnieuw proberen in een exemplaar van RequestRetryOptions en geven we deze door om een clientobject te BlobServiceClientBuilder maken:

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 dit voorbeeld gebruikt elke serviceaanvraag die is uitgegeven vanuit het BlobServiceClient object de opties voor opnieuw proberen zoals gedefinieerd in het RequestRetryOptions exemplaar. Dit beleid is van toepassing op clientaanvragen. U kunt verschillende strategieƫn voor opnieuw proberen configureren voor serviceclients op basis van de behoeften van uw app.

Volgende stappen