Sdílet prostřednictvím


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 daném časovém rámci. Producenti cloudových rozhraní API používají omezení rychlosti, aby se zajistilo, že tok požadavků službu nezahltí. Omezování rychlosti nastavuje limit rychlosti a objemu volání rozhraní API, které 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í, protože brání tomu, aby ho každý uživatel nebo služba zahltit příliš mnoha požadavky.
  • Zajistěte spravedlivé využití. Omezování rychlosti vynucuje zásady spravedlivého využití, což zajišťuje, že žádný uživatel nebude prostředky rozhraní API monopolizovat, což umožňuje spravedlivý přístup ke všem uživatelům.
  • Zabezpečení. Pomáhá zmírnit útoky DDoS (Distributed Denial of Service) a další zneužívající chování omezením počtu požadavků z potenciálně škodlivých zdrojů.
  • Cost Management. 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ů.
  • Kvalita služby. Díky zabránění špičkám provozu zajišťuje omezování rychlosti konzistentní kvalitu služeb pro všechny uživatele.

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 RateLimit-... hlavičky odpovědi s X-RateLimit-... 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 jiného požadavku. Hlavička RateLimit-Reset označuje čas resetování limitu rychlosti. Nezapomeňte, že některá rozhraní API odesílají RateLimit-... hlavičky jenom po dosažení prahové hodnoty, například když zbývá 10 % požadavků.

Když překročíte limit rychlosti, rozhraní API omezí vaše požadavky vracející stavový kód HTTP 429 (Příliš mnoho požadavků). Některá rozhraní API můžou také odeslat hlavičku Retry-After označující, jak dlouho byste měli čekat před odesláním jiného požadavku.

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

Další kroky