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 inom en viss tidsram. 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, som vanligtvis definieras när det gäller begäranden per tidsperiod.
Varför moln-API:er använder hastighetsbegränsning
- Förhindra överlagring. Hastighetsbegränsning säkerställer att API-servern förblir stabil och responsiv genom att förhindra att en enskild användare eller tjänst översvämmas 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, vilket säkerställer att ingen enskild användare monopoliserar API-resurserna, vilket ger rättvis åtkomst till alla användare.
- Säkerhet. Det hjälper till att minimera DDoS-attacker (Distributed Denial of Service) och andra missbruk genom att begränsa antalet begäranden från potentiellt skadliga källor.
- Cost Management. 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.
- Tjänstkvalitet. Genom att förhindra trafiktoppar garanterar hastighetsbegränsning en konsekvent tjänstkvalitet för alla användare.
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 RateLimit-...
du eller X-RateLimit-...
svarshuvuden med information om hastighetsbegränsningarna. 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. Kom ihåg att vissa API:er bara skickar rubrikerna RateLimit-...
när du har nått ett tröskelvärde, till exempel när du har 10 % av begärandena kvar.
När du överskrider hastighetsgränsen begränsar API:et dina begäranden och returnerar statuskoden HTTP 429 (för många begäranden). Vissa API:er kan också skicka ett Retry-After
huvud som anger hur länge du ska vänta innan du skickar en annan begäran.
För att undvika begränsning och säkerställa att programmet förblir responsivt bör du implementera hastighetsbegränsning i ditt program. Beroende på din teknikstack finns det olika bibliotek som hjälper dig att hantera hastighetsbegränsning i ditt program. När du har implementerat hastighetsbegränsning i ditt program testar du om det hanterar hastighetsbegränsningen korrekt.