Delen via


Hoe om te gaan met snelheidsbeperking

Snelheidsbeperking is een veelgebruikte techniek die door API-providers wordt gebruikt voor het beheren van het aantal aanvragen dat in een specifieke periode aan hun service kan worden gedaan. API-providers gebruiken snelheidsbeperking om ervoor te zorgen dat hun service beschikbaar blijft en reageert op alle gebruikers en om misbruik of overgebruik van de service te voorkomen.

Wanneer u cloud-API's in uw toepassing gebruikt, moet u hun frequentielimieten begrijpen. De volgende technieken kunnen u helpen bij het afhandelen van snelheidsbeperking in uw toepassingen:

  • Begrijp limieten voor verwerkingssnelheid. Raadpleeg de documentatie van de API die u gebruikt om inzicht te hebben in de frequentielimieten. Frequentielimieten kunnen afhankelijk zijn van de API-provider of het serviceplan dat u gebruikt. Sommige API's kunnen bijvoorbeeld verschillende tarieflimieten hebben voor gratis en betaalde abonnementen.
  • Gebruik informatie over snelheidsbeperking. API's die gebruikmaken van frequentielimieten communiceren doorgaans de huidige frequentielimieten in de antwoordheaders. De RateLimit-Remaining header geeft bijvoorbeeld het aantal aanvragen aan dat in het huidige venster blijft. Als u een antwoord ontvangt met deze header ingesteld op 0, weet u dat u de frequentielimiet hebt bereikt en moet wachten op het volgende venster voordat u een andere aanvraag verzendt. De RateLimit-Reset header geeft de tijd aan waarop de frequentielimiet opnieuw wordt ingesteld. Sommige API's verzenden de RateLimit-... headers pas nadat u een drempelwaarde hebt bereikt. Een voorbeeld is wanneer u 10% van de aanvragen over hebt.
  • API-gebruik optimaliseren. Sommige services wijzen verschillende kosten toe aan verschillende aanvragen op basis van hun complexiteit. Sommige API's kunnen bijvoorbeeld meer kosten in rekening brengen voor aanvragen die meer gegevens retourneren. Als u de kosten van uw toepassing wilt verlagen, optimaliseert u uw API-gebruik door alleen de gegevens op te halen die u nodig hebt. Batchaanvragen gebruiken als de API deze ondersteunt. Ze helpen u het aantal resources te verminderen dat nodig is om het antwoord te verwerken en binnen de frequentielimieten te blijven.
  • Implementeer een lokale snelheidsbegrenzer. Implementeer een frequentielimiet binnen de toepassing zelf om het aantal aanvragen te beperken dat in een specifieke periode aan de API kan worden gedaan. U kunt dit doen door technieken zoals de token bucket- of leaky bucket-algoritmen te gebruiken, waarmee de toepassing veel aanvragen per tijdsperiode kan indienen. Extra verzoeken worden in de wachtrij geplaatst of genegeerd.
  • Vermijd het overschrijden van frequentielimieten. Wanneer u de frequentielimieten overschrijdt, beperkt de API alle volgende aanvragen die doorgaans een HTTP-statuscode 429 Too Many Requests retourneren. Snelheidsverlaging is doorgaans meer van invloed op de doorvoer van uw toepassing dan de snelheidsbeperking. Gebruik de informatie vermeld in de antwoordheaders voor frequentielimieten om binnen de limieten te blijven en vertraging te voorkomen.

Met behulp van deze technieken kunt u toepassingen bouwen die bestand zijn tegen snelheidsbeperking en kunnen blijven functioneren, zelfs wanneer de API zwaar wordt belast.

Volgende stap