Dela via


Vad är hastighetsbegränsning?

Hastighetsbegränsning är en kontrollmekanism som moln-API:er använder för att reglera antalet begäranden som en användare kan göra under en viss tid. Moln-API-producenter använder hastighetsbegränsning för att säkerställa att flödet av begäranden inte överbelastar tjänsten. Hastighetsbegränsning anger ett tak för hastigheten och volymen för API-anrop. Hastighetsbegränsningar definieras vanligtvis när det gäller begäranden per tidsperiod.

Varför moln-API:er använder hastighetsbegränsning

  • Förhindra överbelastning. Hastighetsbegränsning säkerställer att API-servern förblir stabil och dynamisk genom att förhindra att en enskild användare eller tjänst översvämmar den med för många begäranden.
  • Se till att användningen är rättvis. Hastighetsbegränsning tillämpar principer för rättvis användning genom att säkerställa att ingen enskild användare monopoliserar API-resurserna. Hastighetsbegränsning ger rättvis åtkomst till alla användare.
  • Öka säkerheten. Hastighetsbegränsning hjälper till att minimera distribuerade Denial of Service-attacker och andra missbruk genom att begränsa antalet begäranden från potentiellt skadliga källor.
  • Hantera kostnader. För molntjänstleverantörer hjälper hastighetsbegränsning till att hantera driftskostnader genom att förhindra oförutsägbar eller överdriven användning av resurser.
  • Upprätthålla tjänstens kvalitet. Hastighetsbegränsning säkerställer en konsekvent tjänstkvalitet för alla användare genom att förhindra trafiktoppar.

Så här upplever du hastighetsbegränsning i dina appar

När du skapar appar som integrerar moln-API:er kontrollerar du deras dokumentation för att kontrollera om de stöder hastighetsbegränsning. Om de gör det, får du RateLimit-... eller X-RateLimit-... svarshuvuden med information om hastighetsgränserna. Du kan använda den här informationen i ditt program för att säkerställa att du inte överskrider API:ets hastighetsgränser. Rubriken anger till exempel RateLimit-Remaining antalet begäranden som återstår i det aktuella fönstret. Om du får ett svar med det här huvudet inställt på 0 vet du att du har nått hastighetsgränsen och bör vänta till nästa fönster innan du skickar en annan begäran. Rubriken RateLimit-Reset anger den tid då hastighetsgränsen återställs. Vissa API:er skickar bara rubrikerna RateLimit-... när du har nått ett tröskelvärde. Ett exempel är när du har 10% av de begäranden som återstår.

När du överskrider hastighetsgränsen begränsar API:et dina begäranden och returnerar en HTTP-statuskod 429 Too Many Requests . Vissa API:er kan också skicka ett Retry-After huvud för att ange hur länge du ska vänta innan du skickar en annan begäran.

För att undvika begränsningar och säkerställa att ditt program förblir responsivt, implementera hastighetsbegränsning i ditt program. Beroende på din teknikstack kan olika bibliotek hjälpa dig att hantera hastighetsbegränsning i ditt program. När du har implementerat hastighetsbegränsning i ditt program testar du för att se om det hanterar hastighetsbegränsningen korrekt.

Nästa steg