Rövid útmutató: Kérelemdíjkorlátok beállítása
Feljegyzés
Az Alapszintű, a Standard és a Nagyvállalati csomag 2025. március közepétől megszűnik, 3 éves nyugdíjazási időszakkal. Javasoljuk, hogy váltson az Azure Container Appsre. További információkért lásd az Azure Spring Apps kivonási bejelentését.
A standard felhasználás és a dedikált csomag 2024. szeptember 30-tól megszűnik, hat hónap után pedig teljes leállítással. Javasoljuk, hogy váltson az Azure Container Appsre. További információ: Azure Spring Apps Standard-használat migrálása és dedikált csomag az Azure Container Appsbe.
Ez a cikk a következőre vonatkozik:❌ Basic/Standard ✔️ Enterprise
Ez a rövid útmutató bemutatja, hogyan állíthatja be a kérelmek sebességkorlátjait a Spring Cloud Gateway használatával az Azure Spring Apps Enterprise-csomagban.
A sebességkorlátozással elkerülheti a forgalomnövekedéssel kapcsolatos problémákat. A kérések sebességkorlátainak beállításakor az alkalmazás elutasíthatja a túlzott kéréseket. Ez a konfiguráció segít minimalizálni a szabályozási hibákat, és pontosabban előrejelezni az átviteli sebességet.
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
- A Nagyvállalati csomag Követelmények szakaszának megismerése és teljesítése az Azure Marketplace-en.
- Az Azure CLI 2.45.0-s vagy újabb verziója.
- Git.
- jq
- Az Azure Spring Apps Enterprise csomagbővítménye. A következő paranccsal távolítsa el a korábbi verziókat, és telepítse a legújabb Enterprise-csomagbővítményt. Ha korábban telepítette a
spring-cloud
bővítményt, távolítsa el a bővítményt a konfiguráció és a verzióeltérések elkerülése érdekében.az extension add --upgrade --name spring az extension remove --name spring-cloud
- A Nagyvállalati csomag használatával hajtsa végre az alkalmazások Azure Spring Appsben való kiépítésének és üzembe helyezésének lépéseit.
Kérelmek sebességkorlátainak beállítása
A Spring Cloud Gateway a nyílt forráskódú verzió útvonalszűrőit és számos további útvonalszűrőt tartalmaz. Az egyik ilyen szűrő a RateLimit: A felhasználói kérések szűrésének korlátozása. A RateLimit szűrő korlátozza az útvonalonként engedélyezett kérelmek számát egy időablakban.
Útvonal meghatározásakor hozzáadhatja a RateLimit szűrőt az útvonal szűrőinek listájába való felvételével. A szűrő négy lehetőséget fogad el:
- Az ablakban elfogadott kérések száma.
- Az ablak időtartama. Ez az érték alapértelmezés szerint ezredmásodpercben van, de megadhat egy s, m vagy h utótagot, amely azt jelzi, hogy az érték másodpercben, percben vagy órában van.
- (Nem kötelező) Felhasználói partíciókulcs. Felhasználónkénti sebességkorlátozást is alkalmazhat. Ez azt is jelentheti, hogy a különböző felhasználók saját átviteli sebességüket engedélyezhetik a kérésben található azonosító alapján. Azt jelzi, hogy a kulcs JWT-jogcímben vagy HTTP-fejlécben van-e, vagy
header
szintaxissalclaim
. - (Nem kötelező) A korlátozást IP-címek szerint is értékelheti, de nem kombinálhatja a felhasználónkénti sebességkorlátozással.
Az alábbi példa az összes felhasználót öt másodpercenként két kérésre korlátozza az /products
útvonalra:
{
"predicates": [
"Path=/products",
"Method=GET"
],
"filters": [
"StripPrefix=0",
"RateLimit=2,5s"
]
}
Ha egy útvonalat szeretne elérhetővé tenni különböző felhasználói csoportok számára, amelyeket a saját client_id
HTTP-fejléce azonosít, használja a következő útvonaldefiníciót:
{
"predicates": [
"Path=/products",
"Method=GET"
],
"filters": [
"StripPrefix=0",
"RateLimit=2,5s,{header:client_id}"
]
}
Ha túllépi a korlátot, a válaszok állapota sikertelen 429 Too Many Requests
lesz.
A következő paranccsal alkalmazza a szűrőt RateLimit
az /products
útvonalra:
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
Az alábbi parancsokkal kérje le az útvonal URL-címét a /products
Spring Cloud Gatewayben:
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"
Öt másodpercen belül küldjön több kérést az URL-címre /products
, hogy a kérések állapottal 429 Too Many Requests
meghiúsuljanak.
Az erőforrások eltávolítása
Ha további rövid útmutatókkal és oktatóanyagokkal szeretne dolgozni, érdemes lehet ezeket az erőforrásokat a helyén hagyni. Ha már nincs rá szükség, törölje az erőforráscsoportot, amely törli az erőforráscsoport erőforrásait. Ha törölni szeretné az erőforráscsoportot az Azure CLI használatával, használja a következő parancsokat:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Következő lépések
Folytassa az alábbi rövid útmutatók bármelyikével: