Schnellstart: Festlegen von Grenzwerten für Anforderungsraten
Hinweis
Die Pläne Basic, Standard und Enterprise gelten ab Mitte März 2025 als veraltet und werden über einen Zeitraum von drei (3) Jahren eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie in der Ankündigung zur Einstellung von Azure Spring Apps.
Der Plan Standardverbrauch und dediziert gilt ab dem 30. September 2024 als veraltet und wird nach sechs Monaten vollständig eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie unter Migrieren vom Plan „Standardverbrauch und dediziert“ von Azure Spring Apps zu Azure Container Apps.
Dieser Artikel gilt für:❌ Basic/Standard ✔️ Enterprise
In diesem Schnellstart wird gezeigt, wie Sie mithilfe von Spring Cloud Gateway die Grenzwerte für Anforderungsraten im Azure Spring Apps Enterprise-Plan festlegen können.
Mit der Ratenbegrenzung können Sie Probleme vermeiden, die durch Auslastungsspitzen im Datenverkehr entstehen. Wenn Sie Grenzwerte für Anforderungsraten festlegen, kann Ihre Anwendung übermäßige Anforderungen zurückweisen. Diese Konfiguration hilft Ihnen, Fehler bei der Bandbreiteneinschränkung zu minimieren und den Durchsatz genauer vorherzusagen.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Verstehen und Erfüllen des Abschnitts Anforderungen des Enterprise-Plans in Azure Marketplace.
- Die Azure CLI Version 2.45.0 oder höher.
- Git.
- jq
- Die Erweiterung des Azure Spring Apps Enterprise-Plans. Verwenden Sie den folgenden Befehl, um frühere Versionen zu entfernen und die neueste Erweiterung des Enterprise-Plans zu installieren. Wenn Sie zuvor die
spring-cloud
-Erweiterung installiert hatten, deinstallieren Sie diese Erweiterung, um Konfigurations- und Versionskonflikte zu vermeiden.az extension add --upgrade --name spring az extension remove --name spring-cloud
- Führen Sie die unter Erstellen und Bereitstellen von Apps in Azure Spring Apps mithilfe des Enterprise-Plans beschriebenen Schritte aus.
Festlegen von Grenzwerten für Anforderungsraten
Spring Cloud Gateway enthält Routenfilter aus der Open Source-Version und mehrere weitere Routenfilter. Einer dieser Filter ist der Filter RateLimit: Benutzeranforderungen begrenzen. Der RateLimit-Filter schränkt die Anzahl der Anforderungen ein, die pro Route während eines Zeitfensters zulässig sind.
Wenn Sie eine Route definieren, können Sie den RateLimit-Filter hinzufügen, indem Sie ihn in die Liste der Filter für die Route aufnehmen. Der Filter akzeptiert vier Optionen:
- Die Anzahl der Anforderungen, die während des Zeitfensters akzeptiert wurden.
- Die Dauer des Zeitfensters. Dieser Wert ist standardmäßig in Millisekunden angegeben, aber Sie können ein Suffix von s, m oder h angeben, um festzulegen, dass der Wert in Sekunden, Minuten oder Stunden angegeben ist.
- (Optional) Ein Benutzerpartitionsschlüssel. Sie können auch eine Ratenbegrenzung pro Benutzer anwenden. Das heißt, verschiedene Benutzer können ihren eigenen Durchsatz auf der Grundlage eines in der Anforderung gefundenen Bezeichners zulassen. Geben Sie an, ob der Schlüssel in einem JWT-Anspruch oder HTTP-Header mit
claim
- oderheader
-Syntax enthalten ist. - (Optional) Sie können die Raten nach IP-Adressen begrenzen, aber nicht in Kombination mit der Ratenbegrenzung pro Benutzer.
Das folgende Beispiel würde alle Benutzer auf zwei Anforderungen alle fünf Sekunden auf die /products
-Route begrenzen:
{
"predicates": [
"Path=/products",
"Method=GET"
],
"filters": [
"StripPrefix=0",
"RateLimit=2,5s"
]
}
Wenn Sie eine Route für verschiedene Gruppen von Benutzern verfügbar machen möchten, die jeweils durch einen eigenen client_id
-HTTP-Header identifiziert werden, verwenden Sie die folgende Routendefinition:
{
"predicates": [
"Path=/products",
"Method=GET"
],
"filters": [
"StripPrefix=0",
"RateLimit=2,5s,{header:client_id}"
]
}
Wenn der Grenzwert überschritten wird, tritt bei den Antworten der Fehler mit dem Status 429 Too Many Requests
auf.
Verwenden Sie den folgenden Befehl, um den RateLimit
-Filter auf die /products
-Route anzuwenden:
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
Verwenden Sie die folgenden Befehle, um die URL für die /products
-Route in Spring Cloud Gateway abzurufen:
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"
Stellen Sie für /products
innerhalb von fünf Sekunden mehrere Anforderungen an die URL, um zu prüfen, ob bei den Anforderungen ein Fehler mit dem Status 429 Too Many Requests
auftritt.
Bereinigen von Ressourcen
Falls Sie mit weiteren Schnellstartanleitungen und Tutorials fortfahren möchten, sollten Sie die Ressourcen nicht bereinigen. Wenn Sie die Ressourcen nicht mehr benötigen, löschen Sie die Ressourcengruppe. Dadurch werden die Ressourcen in der Ressourcengruppe gelöscht. Wenn Sie die Ressourcengruppe mithilfe der Azure CLI löschen möchten, verwenden Sie die folgenden Befehle:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Nächste Schritte
Fahren Sie mit einer der folgenden optionalen Schnellstartanleitungen fort: