Co je omezování rychlosti?

Omezování rychlosti je řídicí mechanismus, který cloudová rozhraní API používají k regulaci počtu požadavků, které může uživatel provést v určitém čase. Producenti cloudových rozhraní API používají omezení rychlosti, aby se zajistilo, že tok požadavků službu nezahltí. Omezování rychlosti nastaví limit rychlosti a objemu volání rozhraní API. Omezení rychlosti se obvykle definují z hlediska požadavků za časové období.

Proč cloudová rozhraní API používají omezování rychlosti

  • Zabránit přetížení. Omezování rychlosti zajišťuje, aby server rozhraní API zůstal stabilní a responzivní tím, že brání tomu, aby ho žádný uživatel nebo služba zahltili příliš mnoha požadavky.
  • Zajistěte spravedlivé využití. Omezování rychlosti vynucuje zásady spravedlivého využití tím, že zajišťuje, aby žádný uživatel nemonopolizoval prostředky rozhraní API. Omezování rychlosti umožňuje spravedlivý přístup všem uživatelům.
  • Zvyšte zabezpečení. Omezování rychlosti pomáhá zmírnit útoky distribuovaného odepření služeb a další zneužívající chování omezením počtu požadavků z potenciálně škodlivých zdrojů.
  • Správě nákladů. U poskytovatelů cloudových služeb pomáhá omezování rychlosti při správě provozních nákladů tím, že brání nepředvídatelným nebo nadměrnému využití prostředků.
  • Udržujte kvalitu služeb. Omezování rychlosti zajišťuje konzistentní kvalitu služby pro všechny uživatele tím, že brání špičkám provozu.

Jak v aplikacích dochází k omezování rychlosti

Při vytváření aplikací, které integrují cloudová rozhraní API, zkontrolujte jejich dokumentaci a ověřte, jestli podporují omezování rychlosti. Pokud ano, obdržíte hlavičky odpovědi RateLimit-... nebo X-RateLimit-... s informacemi o limitech rychlosti. Tyto informace můžete použít ve své aplikaci, abyste zajistili, že nepřekročíte limity rychlosti rozhraní API. Hlavička RateLimit-Remaining například označuje počet zbývajících požadavků v aktuálním okně. Pokud obdržíte odpověď s touto hlavičkou nastavenou na 0, víte, že jste dosáhli limitu rychlosti a měli byste počkat na další okno před odesláním dalšího požadavku. Hlavička RateLimit-Reset označuje čas resetování limitu rychlosti. Některá rozhraní API odesílají RateLimit-... hlavičky až po dosažení prahové hodnoty. Příkladem je, když máte zbývajících 10% požadavků.

Když překročíte limit rychlosti, rozhraní API omezí vaše požadavky a vrátí stavový kód HTTP 429 Too Many Requests . Některá rozhraní API můžou také odeslat hlavičku Retry-After , která označuje, jak dlouho byste měli čekat, než odešlete jiný požadavek.

Abyste se vyhnuli omezování a zajistili, že vaše aplikace zůstane responzivní, implementujte omezení rychlosti ve vaší aplikaci. V závislosti na zásobníku technologií vám můžou různé knihovny pomoct zvládnout omezování rychlosti ve vaší aplikaci. Po implementaci omezování rychlosti v aplikaci otestujte, jestli zpracovává správně omezování rychlosti.

Jaký vliv má omezování rychlosti na vaši aplikaci?

Většina aplikací nezpracuje správně omezování rychlosti. Když rozhraní API začne vracet 429 odpovědi, typická aplikace buď dojde k chybovému ukončení, zobrazí uživateli chybu nebo bezobslužně ztratí data. Můžete zjistit, jak se vaše aplikace chová, simulací omezení rychlosti lokálně pomocí Dev Proxy — aniž byste čekali, až vás skutečné rozhraní API začne omezovat.

Další kroky