Dela via


Hantera hastighetsbegränsning

Hastighetsbegränsning är en vanlig teknik som används av API-leverantörer för att hantera antalet begäranden som kan göras till deras tjänst under en viss tidsperiod. API-leverantörer använder hastighetsbegränsning för att säkerställa att deras tjänst förblir tillgänglig och responsiv för alla användare och för att förhindra missbruk eller överanvändning av tjänsten.

När du använder moln-API:er i ditt program bör du förstå deras hastighetsgränser. Följande tekniker kan hjälpa dig att hantera hastighetsbegränsning i dina program:

  • Förstå hastighetsbegränsningar. Kontrollera dokumentationen för api:et som du använder för att förstå hastighetsbegränsningarna. Hastighetsbegränsningar kan bero på API-providern eller den tjänstplan som du använder. Vissa API:er kan till exempel ha olika prisgränser för kostnadsfria och betalda planer.
  • Använd information om hastighetsbegränsning. API:er som använder hastighetsgränser kommunicerar vanligtvis de aktuella hastighetsgränserna i svarshuvudena. Till exempel RateLimit-Remaining anger rubriken antalet begäranden som finns kvar 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.
  • Optimera API-användning. Vissa tjänster tilldelar olika kostnader till olika begäranden baserat på deras komplexitet. Vissa API:er kan till exempel debitera mer för begäranden som returnerar mer data. Om du vill minska kostnaden för ditt program optimerar du API-användningen genom att bara hämta de data som du behöver. Använd batchbegäranden om API:et stöder dem. De hjälper dig att minska antalet resurser som krävs för att bearbeta svaret och hålla dig inom hastighetsgränserna.
  • Implementera en lokal hastighetsbegränsning. Implementera en hastighetsbegränsning i själva programmet för att begränsa antalet begäranden som kan göras till API:et under en viss tidsperiod. Du kan göra det genom att använda tekniker som token bucket- eller läckande bucket-algoritmer, vilket möjliggör för applikationen att göra många förfrågningar per tidsperiod. Alla fler begäranden placeras i kö eller ignoreras.
  • Undvik att överskrida hastighetsgränserna. När du överskrider hastighetsgränserna begränsar API:et alla efterföljande begäranden som vanligtvis returnerar en HTTP-statuskod 429 Too Many Requests . Strypning påverkar vanligtvis applikationens genomströmning mer än kapacitetsbegränsning. Använd informationen som exponeras i svarshuvuden för hastighetsbegränsning för att hålla dig inom hastighetsgränserna och undvika begränsning.

Med hjälp av dessa tekniker kan du skapa program som är motståndskraftiga mot hastighetsbegränsning och kan fortsätta att fungera även när API:et är hårt belastat.

Nästa steg