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.