Rövid útmutató: Kérelemdíjkorlátok beállítása

Feljegyzés

Az Azure Spring Apps az Azure Spring Cloud szolgáltatás új neve. Bár a szolgáltatásnak új neve van, bizonyos helyeken a régi nevet fogja látni egy darabig, miközben az eszközök, például képernyőképek, videók és diagramok frissítésével dolgozunk.

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

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 Requestsmeghiú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: