Čo je rate limiting? Jednoduchý sprievodca pre tvorcov aplikácií
Rate limiting je pravidlo, ktoré obmedzuje, koľko požiadaviek môže niekto poslať systému za daný čas — napríklad 5 pokusov o prihlásenie za minútu alebo 100 volaní API za hodinu. Keď sa limit dosiahne, ďalšie požiadavky sa odmietnu (zvyčajne s chybovým kódom 429 Too Many Requests), kým sa časové okno neobnoví. Chráni aplikácie pred zneužitím, zabraňuje tomu, aby jeden náročný používateľ spomaľoval všetkých ostatných, a zastavuje neriadené náklady.
S rate limitingom sa stretnete z dvoch strán: služby, ktoré voláte, obmedzujú vás a vaša vlastná aplikácia by mala obmedzovať svojich používateľov.
Prečo rate limiting záleží, keď budujete s AI
Aplikácie vytvorené s AI sa často pripájajú k plateným službám — AI modelom, e-mailu, SMS, mapám — a každé volanie stojí peniaze. Rate limiting je preto zároveň bezpečnostná funkcia aj funkcia rozpočtu.
- Kontrola nákladov. Ak má vaša aplikácia okno „opýtaj sa AI“ a žiadny limit, bot ho cez noc môže zasypať tisíckami požiadaviek. Zaplatíte za každú z nich.
- Bezpečnosť. Bez limitu na prihlasovacom formulári môže útočník skúšať tisíce hesiel na jeden účet. Limit niekoľkých pokusov za minútu to robí nepraktickým.
- Zostať online. Jeden chybne fungujúci skript — niekedy aj váš vlastný kód zaseknutý v slučke — dokáže preťažiť databázu a zhodiť aplikáciu.
- Rešpektovanie limitov iných služieb. Keď vaša aplikácia volá externé API príliš často, chyby 429 dostanete vy a funkcie sa pokazia vašim používateľom.
Nástroje na tvorbu s AI postavia to, čo požadujete. Ak limity nespompoviete, často zostanú vynechané.
Každodenné prirovnanie
Predstavte si politiku bezplatného doplnenia v kaviarni: „Jedno bezplatné doplnenie na zákazníka na návštevu.“
- Nikomu nebráni vychutnávať si kávu.
- Zabraňuje jednému človeku stáť pri pulte celý deň a dopĺňať termosku pre celú kanceláriu.
- Keď niekto požiada o štvrté doplnenie, baristka zdvorilo povie „teraz nie“ — to je to
429.
Dobrý rate limit je neviditeľný pre bežných zákazníkov a všimne si ho len niekto, kto robí niečo neobvyklé.
Ako rate limiting funguje
Rate limiter potrebuje tri veci:
| Časť | Otázka, na ktorú odpovedá | Príklady |
|---|---|---|
| Kto | Čie požiadavky sa počítajú? | Na používateľský účet, na IP adresu, na API kľúč |
| Koľko | Aký je limit? | 5, 60, 1 000 požiadaviek |
| Za aký čas | V akom okne? | Za sekundu, minútu, hodinu, deň |
Keď príde požiadavka, aplikácia skontroluje počet pre toho „koho“. Pod limitom: požiadavka prejde a počet sa zvýši. Nad limitom: požiadavka sa odmietne.
Existuje niekoľko bežných spôsobov počítania:
| Metóda | Ako funguje | Kompromis |
|---|---|---|
| Pevné okno | Počet sa resetuje podľa hodín — napr. každú minútu presne | Jednoduché, ale umožní nápor na hranici dvoch okien |
| Kĺzavé okno | Pozerá na posledných 60 sekúnd od teraz | Plynulejšie, o niečo náročnejší výpočet |
| Token bucket | Každý používateľ má vedro, ktoré sa dopĺňa stálou rýchlosťou; každá požiadavka spotrebuje žetón | Povolí krátke nápory a drží priemer stabilný |
Počty treba uchovávať niekde rýchlo a zdieľane. Na jednom malom serveri stačí pamäť. Keď aplikácia beží na viacerých strojoch, počítadlo sa zvyčajne ukladá do zdieľaného úložiska ako Redis alebo databáza, inak každý stroj počíta zvlášť a skutočný limit sa zvýši niekoľkonásobne.
Ako vyzerá odpoveď pri prekročení limitu
Keď je požiadavka nad limitom, dobre navrhnuté API odpovie:
- Stavovým kódom
429 Too Many Requests. - Často hlavičkou
Retry-After, ktorá hovorí, koľko sekúnd treba čakať. - Niekedy hlavičkami, ktoré ukazujú váš limit a koľko požiadaviek vám v tomto okne zostáva (názvy sa líšia podľa poskytovateľa).
Vaša aplikácia by mala na 429 reagovať čakaním a opakovaním neskôr — ideálne s exponenciálnym backoffom, čo znamená čakať o niečo dlhšie po každom neúspešnom pokuse (1 sekunda, potom 2, potom 4), namiesto toho, aby ste službu zasypávali.
Pracovný príklad: AI asistent na písanie
Predstavte si, že ste vytvorili aplikáciu, kde používatelia vložia text a dostanú AI prepis.
Bez limitov: niekto napíše skript, ktorý cez noc pošle 20 000 požiadaviek. Účet u vášho poskytovateľa AI vyskočí a váš účet narazí na vlastný limit poskytovateľa, takže skutoční používatelia ráno vidia chyby.
S rozumnými limitmi:
- Na prihláseného používateľa: 30 prepisov za hodinu v bezplatnom pláne, 300 v platenom. Nad limit používateľ uvidí: „Dosiahli ste limit tejto hodiny. Skúste to znova o 12 minút, alebo si aktualizujte plán.“
- Na IP adresu vo formulári registrácie: 5 registrácií za hodinu, aby boti nevytvárali tisíce bezplatných účtov a neobišli limit na používateľa.
- Limit výdavkov nastavený v kontrolnom paneli vášho poskytovateľa AI ako posledná obrana, ak zlyhá všetko ostatné.
- Riešenie limitov poskytovateľa: ak poskytovateľ AI vráti 429, váš server počká a skúsi to znova raz alebo dvakrát a potom zobrazí priateľskú správu „Systém je zaneprázdnený, skúste to znova“.
Limity sa kontrolujú na serveri. Limit, ktorý existuje len v prehliadači — napríklad vypnutie tlačidla po 30 kliknutiach — môže obísť ktokoľvek, kto volá vaše API priamo.
Kľúčové pojmy
| Pojem | Význam |
|---|---|
| Rate limit | Maximálny počet požiadaviek povolených v časovom okne. |
| Kvóta | Väčší nárok, často na deň alebo mesiac, niekedy viazaný na platený plán. |
| 429 | HTTP stavový kód pre „príliš veľa požiadaviek“. |
| Retry-After | Hlavička odpovede, ktorá hovorí, ako dlho čakať pred ďalším pokusom. |
| Throttling | Spomalenie alebo odmietnutie požiadaviek nad limit. Často sa používa ako synonymum. |
| Exponenciálny backoff | Postupné predlžovanie čakania medzi opakovanými pokusmi. |
| Nápor (burst) | Krátky nápor veľkého počtu požiadaviek naraz. |
| Brute-force útok | Skúšanie obrovského množstva hesiel alebo kódov, kým jedno nezaberie. |
Bežné mylné predstavy
- „Rate limiting je len pre veľké aplikácie.“ Malé aplikácie sú tiež cieľom, pretože boti prehľadávajú celý internet kvôli otvoreným formulárom a koncovým bodom AI. Cena zneužitia nezávisí od vašej veľkosti.
- „Stačí skryť tlačidlo.“ Limity na strane prehliadača sú zdvorilosť, nie ochrana. Skutočné limity sa musia vynucovať na serveri.
- „Limity podľa IP sú vždy férové.“ Mnoho ľudí môže zdieľať jednu IP adresu — kancelária, škola, mobilná sieť. Limity na používateľa sú férovejšie, keď sú ľudia prihlásení.
- „429 znamená, že služba je pokazená.“ Znamená to, že ju voláte príliš často. Skontrolujte svoj kód na slučky a ukladajte do vyrovnávacej pamäte výsledky, ktoré sa často nemenia — pozrite čo je caching.
- „Rate limiting nahrádza limit výdavkov.“ Používajte oboje. Limity vo vašej aplikácii môžu mať chyby; limit výdavkov poskytovateľa je vaša záložná poistka.
Čo požiadať od svojho AI nástroja na tvorbu
- „Pridaj rate limiting na strane servera pre prihlásenie, registráciu, obnovu hesla a AI koncový bod. Navrhni rozumné limity.“
- „Obmedz každého prihláseného používateľa na [N] požiadaviek AI za hodinu a pri dosiahnutí limitu zobraz jasnú správu s časom čakania.“
- „Keď externé API vráti 429, opakuj s exponenciálnym backoffom najviac 3-krát a potom zobraz priateľskú chybu.“
- „Kde sa ukladajú počítadlá rate limitu? Budú fungovať, aj keď aplikácia beží na viacerých strojoch?“
- „Zaznamenávaj, kedykoľvek používateľ alebo IP narazí na limit, aby som mohol odhaliť zneužitie.“
- „Ktoré externé služby táto aplikácia volá a aké sú ich rate limity?“
Rate limiting v Mythex
Dokumentácia Mythex je v tejto veci pri AI funkciách priama: rate limity, bezpečnostné a nákladové kontroly v aplikáciách, ktoré postavíte, navrhujete vy — pozrite Vytvorenie AI aplikácie. Požiadajte agenta, aby pridal limity v tej istej správe, v ktorej žiadate funkciu. V pláne Pro môže publikovaná služba pri veľkej návštevnosti bežať na až troch strojoch (pozrite Limity hostingu), takže si vypýtajte počítadlá uložené v databáze, nie v pamäti jedného servera.
Súvisiace čítanie: čo je API, ako používať LLM API a bezpečnostný kontrolný zoznam pre aplikácie postavené s AI.
Otázky
Čo je rate limiting jednoducho povedané?
Rate limiting je pravidlo, ktoré obmedzuje, koľko požiadaviek môže používateľ, zariadenie alebo aplikácia poslať za daný čas — napríklad 5 pokusov o prihlásenie za minútu alebo 100 volaní API za hodinu. Požiadavky nad limit sa odmietnu, kým sa časové okno neobnoví.
Čo znamená chyba 429 Too Many Requests?
HTTP stav 429 znamená, že ste poslali príliš veľa požiadaviek v príliš krátkom čase a narazili ste na limit. Odpoveď často obsahuje hlavičku Retry-After, ktorá hovorí, ako dlho čakať. Riešením je spomaliť, zopakovať požiadavku po pauze alebo znížiť, ako často vaša aplikácia volá službu.
Prečo moja aplikácia poháňaná AI potrebuje rate limiting?
Každá požiadavka na AI vás stojí peniaze v tokenoch. Bez limitu môže jeden používateľ alebo bot poslať tisíce požiadaviek, vygenerovať veľký účet alebo vyčerpať kvótu poskytovateľa a vypnúť funkciu pre všetkých. Limity na používateľa držia náklady predvídateľné.
Je rate limiting to isté ako throttling?
Sú úzko späté a často sa používajú zameniteľne. Rate limiting zvyčajne znamená odmietnutie požiadaviek nad limit, zatiaľ čo throttling môže znamenať aj ich spomalenie alebo zaradenie do fronty namiesto priameho odmietnutia.
Zastaví rate limiting útoky DDoS?
Pomáha pri malých záplavách a zneužívaní od jednotlivých používateľov alebo IP adries, ale veľký distribuovaný útok prichádza z mnohých adries naraz. Ochrana proti nim sa zvyčajne robí na úrovni siete alebo CDN, skôr než premávka dorazí k vašej aplikácii.