Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Notitie
De Basic, Standarden Enterprise--plannen zijn op 17 maart 2025 buiten gebruik gesteld. Zie de aankondiging over buitengebruikstelling van Azure Spring Apps voor meer informatie.
Het Standaardverbruik en het toegewezen-plan zijn op 30 september 2024 met een uitfasering begonnen, met een volledige beëindiging eind maart 2025. Zie Azure Spring Apps Standard-verbruik en toegewezen abonnement migreren naar Azure Container Apps voor meer informatie.
Dit artikel is van toepassing op: ❎ Basic/Standard ✅ Enterprise
In deze quickstart ziet u hoe u aanvraagfrequentielimieten instelt met behulp van Spring Cloud Gateway in het Azure Spring Apps Enterprise-abonnement.
Met snelheidsbeperking kunt u problemen voorkomen die zich voordoen met pieken in het verkeer. Wanneer u aanvraagfrequentielimieten instelt, kan uw toepassing overmatige aanvragen afwijzen. Met deze configuratie kunt u beperkingsfouten minimaliseren en de doorvoer nauwkeuriger voorspellen.
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken
- Begrijpen en voldoen aan de sectie 'Vereisten' van het Enterprise-plan in Azure Marketplace.
- De Azure CLI versie 2.45.0 of hoger.
- Git.
- jq
-
De Azure Spring Apps Enterprise-abonnementsextensie. Gebruik de volgende opdracht om eerdere versies te verwijderen en de nieuwste Enterprise-abonnementsextensie te installeren. Als u de
spring-cloud
-extensie eerder hebt geïnstalleerd, verwijder deze dan om te voorkomen dat er configuratie- en versieconflicten optreden.az extension add --upgrade --name spring az extension remove --name spring-cloud
- Voer de stappen in Het bouwen en implementeren van apps in Azure Spring Apps uit met behulp van het Enterprise-abonnement.
Frequentielimieten voor aanvragen instellen
Spring Cloud Gateway bevat routefilters uit de opensource-versie en een aantal meer routefilters. Een van deze filters is het RateLimit: gebruikersverzoeken beperken-filter. Het RateLimit-filter beperkt het aantal aanvragen dat per route is toegestaan tijdens een tijdvenster.
Wanneer u een route definieert, kunt u het RateLimit-filter toevoegen door deze op te geven in de lijst met filters voor de route. Het filter accepteert vier opties:
- Het aantal aanvragen dat tijdens het venster is geaccepteerd.
- De duur van het venster. Deze waarde is standaard in milliseconden, maar u kunt een achtervoegsel van
s
,m
ofh
om aan te geven dat de waarde in seconden, minuten of uren is. - (Optioneel) Een partitiesleutel van een gebruiker. U kunt ook frequentielimieten per gebruiker toepassen. Dat wil zeggen dat verschillende gebruikers hun eigen doorvoersnelheid kunnen hebben op basis van een identificator die in het verzoek is gevonden. Geef aan of de sleutel zich in een JWT-claim of HTTP-header bevindt met
claim
ofheader
syntaxis. - (Optioneel) U kunt een snelheidslimiet instellen per IP-adres, maar niet in combinatie met een snelheidslimiet per gebruiker.
In het volgende voorbeeld worden alle gebruikers beperkt tot twee aanvragen om de vijf seconden naar de /products
route:
{
"predicates": [
"Path=/products",
"Method=GET"
],
"filters": [
"StripPrefix=0",
"RateLimit=2,5s"
]
}
Als u een route beschikbaar wilt maken voor verschillende sets gebruikers, gebruikt u de volgende routedefinitie die wordt geïdentificeerd door een eigen client_id
HTTP-header:
{
"predicates": [
"Path=/products",
"Method=GET"
],
"filters": [
"StripPrefix=0",
"RateLimit=2,5s,{header:client_id}"
]
}
Wanneer de limiet wordt overschreden, mislukken antwoorden met 429 Too Many Requests
de status.
Gebruik de volgende opdracht om het RateLimit
filter toe te passen op de /products
route:
az spring gateway route-config update \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-service-instance-name> \
--name catalog-routes \
--app-name catalog-service \
--routes-file azure-spring-apps-enterprise/resources/json/routes/catalog-service_rate-limit.json
Gebruik de volgende opdrachten om de URL voor de /products
route op te halen in Spring Cloud Gateway:
export GATEWAY_URL=$(az spring gateway show \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url')
echo "https://${GATEWAY_URL}/products"
Maak binnen een periode van vijf seconden verschillende aanvragen naar de URL /products
om te zien dat aanvragen mislukken met een status 429 Too Many Requests
.
Middelen opschonen
Als u van plan bent om verder te gaan met volgende snelstartgidsen en zelfstudies, kunt u deze resources in hun huidige staat laten. Als u de resourcegroep niet meer nodig hebt, verwijdert u deze. Hierdoor worden ook de resources in de resourcegroep verwijderd. Als u de resourcegroep wilt verwijderen met behulp van Azure CLI, gebruikt u de volgende opdrachten:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Volgende stappen
Ga door naar een van de volgende optionele quickstarts: