Útmutatók

Mi az a sebességkorlátozás? Közérthető útmutató alkalmazás-építőknek

A sebességkorlátozás egy szabály, amely megszabja, hány kérést küldhet valaki egy rendszernek meghatározott idő alatt – például percenként 5 bejelentkezési kísérletet vagy óránként 100 API-hívást. Ha eléri a korlátot, a további kéréseket addig utasítják el (általában a 429 Too Many Requests hibakóddal), amíg az időablak újra nem indul. Védi az alkalmazásokat a visszaélésektől, megakadályozza, hogy egy nagy igénybevételű felhasználó mindenki számára lassítsa a dolgokat, és megállítja a kontrollálatlan költségeket.

A sebességkorlátozással kétféleképpen találkozhatsz: a te által hívott szolgáltatások korlátozzák téged, a saját alkalmazásodnak pedig a felhasználóit kellene korlátoznia.

Miért fontos a sebességkorlátozás, ha AI-val építkezel

Az AI-val épített alkalmazások gyakran fizetős szolgáltatásokhoz kapcsolódnak – AI-modellekhez, e-mailhez, SMS-hez, térképekhez –, és minden hívás pénzbe kerül. Ezért a sebességkorlátozás egyszerre biztonsági és költségvetési funkció.

  • Költségkontroll. Ha az alkalmazásodban van egy „kérdezd meg az AI-t” mező, korlát nélkül egy bot egy éjszaka alatt ezer kérést küldhet. Minden egyes kérésért fizetsz.
  • Biztonság. A bejelentkező űrlap korlátja nélkül egy támadó ezer jelszót kipróbálhat egy fiókon. Néhány kísérlet percenként ezt gyakorlatilag lehetetlenné teszi.
  • Online maradás. Egyetlen hibás szkript – néha a saját kódod, amely végtelen ciklusba ragadt – túlterhelheti az adatbázisodat, és leállíthatja az alkalmazást.
  • Mások korlátainak tiszteletben tartása. Ha az alkalmazásod túl gyakran hív egy külső API-t, te kapod a 429-es hibákat, és a funkciók elromlanak a felhasználóidnak.

Az AI-építők azt építik meg, amit kérsz. Ha nem említesz korlátokat, azok gyakran kimaradnak.

Hétköznapi hasonlat

Gondolj egy kávézó ingyenes utántöltési szabályára: „Vendégenként egy ingyenes utántöltés látogatásonként.”

  • Nem akadályozza meg, hogy valaki élvezze a kávéját.
  • Megakadályozza, hogy valaki egész nap a pultnál álljon, és az egész iroda számára töltögessen egy termoszba.
  • Amikor valaki negyedik utántöltést kér, a barista udvariasan azt mondja: „most nem” – ez a 429.

A jó sebességkorlát a normál vásárlók számára észrevehetetlen, és csak az figyeli fel, aki szokatlan dolgot csinál.

Hogyan működik a sebességkorlátozás

A sebességkorlátozónak három dologra van szüksége:

RészMilyen kérdésre válaszolPéldák
KiKinek a kéréseit számoljuk?Felhasználói fiókonként, IP-címenként, API-kulcsonként
MennyiMekkora a korlát?5, 60, 1000 kérés
Milyen időszakraMelyik ablakon belül?Másodpercenként, percenként, óránként, naponta

Amikor kérés érkezik, az alkalmazás ellenőrzi az adott „kire” vonatkozó számlálót. A korlát alatt: a kérés átmegy, és a számláló nő. A korláton túl: a kérést elutasítják.

Néhány gyakori számlálási mód:

MódszerHogyan működikKompromisszum
Rögzített ablakA számláló az órához igazodva nullázódik – pl. minden percben a pontos percnélEgyszerű, de két ablak határán rövid torlódást enged
Csúszó ablakA mostantól visszafelé nézett utolsó 60 másodpercet vizsgáljaSimább, kicsit több számítást igényel
Token-vödörMinden felhasználónak van egy vödre, amely állandó ütemben töltődik; minden kérés egy tokent visz elRövid kitöréseket enged, miközben az átlag stabil marad

A számlálókat gyors, megosztott helyen kell tárolni. Egyetlen kis szerveren a memória elég. Ha az alkalmazás több gépen fut, a számláló általában megosztott tárolóban él, például Redisben vagy az adatbázisban, különben minden gép külön számol, és a tényleges korlát többszörösére nő.

Hogyan néz ki a korlátozott válasz

Ha egy kérés a korláton túl van, egy rendesen működő API így válaszol:

  • 429 Too Many Requests állapotkód.
  • Gyakran Retry-After fejléc, amely megmondja, hány másodpercet kell várni.
  • Néha olyan fejlécek, amelyek megmutatják a korlátodat és azt, hány kérésed maradt ebben az ablakban (a nevek szolgáltatónként eltérnek).

Az alkalmazásodnak a 429-re úgy kell reagálnia, hogy vár, és később újrapróbálkozik – ideális esetben exponenciális visszalépéssel (backoff), vagyis minden sikertelen próbálkozás után egy kicsit tovább vár (1 másodperc, aztán 2, aztán 4), ahelyett hogy szüntelenül bombázná a szolgáltatást.

Munkapélda: egy AI-alapú íróasszisztens

Tegyük fel, hogy olyan alkalmazást építettél, ahol a felhasználók szöveget illesztenek be, és AI-átírást kapnak.

Korlátok nélkül: valaki olyan szkriptet ír, amely egy éjszaka alatt 20 000 kérést küld. Az AI-szolgáltatód számlája megugrik, a fiókod eléri a szolgáltató saját sebességkorlátját, így a valódi felhasználók egész délelőtt hibákat látnak.

Ésszerű korlátokkal:

  1. Bejelentkezett felhasználónként: 30 átírás óránként az ingyenes csomagban, 300 a fizetősben. A korláton túl a felhasználó ezt látja: „Elérted ennek az órának a korlátját. Próbáld újra 12 perc múlva, vagy frissíts csomagot.”
  2. IP-címenként a regisztrációs űrlapon: 5 regisztráció óránként, hogy a botok ne hozhassanak létre ezer ingyenes fiókot a felhasználónkénti korlát megkerülésére.
  3. Költési limit az AI-szolgáltatód irányítópultján, utolsó védvonalként, ha minden más meghibásodik.
  4. A szolgáltató korlátainak kezelése: ha az AI-szolgáltató 429-et küld, a szervered egy-két alkalommal vár és újrapróbálkozik, majd barátságos „foglalt, kérjük, próbáld újra” üzenetet mutat.

A korlátokat a szerveren ellenőrizd. Egy korlát, amely csak a böngészőben létezik – például a gomb letiltása 30 kattintás után –, bárki megkerülheti, aki közvetlenül hívja az API-dat.

Kulcsfogalmak

FogalomJelentés
Sebességkorlát (rate limit)A megengedett kérések maximális száma egy időablakon belül.
KvótaNagyobb keret, gyakran naponta vagy havonta, néha fizetős csomaghoz kötve.
429A „túl sok kérés” HTTP-állapotkódja.
Retry-AfterVálaszfejléc, amely megmondja, mennyit kell várni az újrapróbálkozás előtt.
ThrottlingA korláton felüli kérések lassítása vagy elutasítása. Gyakran szinonimaként használják.
Exponenciális visszalépés (backoff)Fokozatosan hosszabb várakozás az újrapróbálkozások között.
Kitörés (burst)Sok kérés rövid, hirtelen hulláma.
Brute-force támadásHatalmas mennyiségű jelszó vagy kód kipróbálása, amíg egy működik.

Gyakori tévhitek

  • „A sebességkorlátozás csak nagy alkalmazásoknak kell.” A kis alkalmazások is célpontok, mert a botok az egész interneten nyitott űrlapokat és AI-végpontokat keresnek. A visszaélés költsége nem függ az alkalmazás méretétől.
  • „Elég elrejteni a gombot.” A böngészőoldali korlátok udvariasságok, nem védelmek. A valódi korlátokat a szerveren kell érvényesíteni.
  • „Az IP-alapú korlátok mindig igazságosak.” Sokan osztoznak egy IP-címen – egy irodában, iskolában vagy mobilhálózaton. A felhasználónkénti korlátok bejelentkezett embereknél igazságosabbak.
  • „A 429 azt jelenti, hogy a szolgáltatás hibás.” Azt jelenti, hogy túl gyakran hívod. Nézd át a kódot ciklusok után, és gyorsítótárazd azokat az eredményeket, amelyek ritkán változnak – lásd: mi az a gyorsítótárazás.
  • „A sebességkorlátozás helyettesíti a költési limitet.” Használd mindkettőt. Az alkalmazásodban lévő korlátokban lehetnek hibák; a szolgáltató költési limitje a végső biztosíték.

Mit kérj az AI-építődtől

  • „Adj szerveroldali sebességkorlátozást a bejelentkezéshez, regisztrációhoz, jelszó-visszaállításhoz és az AI-végponthoz. Javasolj ésszerű korlátokat.”
  • „Minden bejelentkezett felhasználót korlátozz [N] AI-kérésre óránként, és ha eléri, mutass egyértelmű üzenetet a várakozási idővel.”
  • „Ha egy külső API 429-et ad, próbáld újra exponenciális visszalépéssel legfeljebb 3-szor, majd mutass barátságos hibaüzenetet.”
  • „Hol tárolódnak a sebességkorlát-számlálók? Működnek majd, ha az alkalmazás több gépen fut?”
  • „Naplózd, valahányszor egy felhasználó vagy IP eléri a korlátot, hogy észrevegyem a visszaéléseket.”
  • „Mely külső szolgáltatásokat hívja ez az alkalmazás, és mik a sebességkorlátaik?”

Sebességkorlátozás a Mythexben

A Mythex dokumentációja egyenesen fogalmaz ezzel kapcsolatban az AI-funkciókra vonatkozóan: a sebességkorlátok, a biztonsági és költségkontrollok az általad épített alkalmazásokban a te feladatod a megtervezésük – lásd: AI-alkalmazás építése. Kérd az ügynöktől a korlátokat ugyanabban az üzenetben, amelyben a funkciót kéred. Pro csomagban egy közzétett szolgáltatás nagy forgalom esetén akár három gépen is futhat (lásd: Tárhelykorlátok), ezért kérj olyan számlálókat, amelyek az adatbázisban élnek, nem egyetlen szerver memóriájában.

Kapcsolódó olvasnivaló: mi az az API, hogyan használj LLM API-kat és az AI-val épített alkalmazások biztonsági ellenőrzőlistája.

Kérdések

Mi a sebességkorlátozás egyszerűen fogalmazva?

A sebességkorlátozás egy szabály, amely megszabja, hány kérést küldhet egy felhasználó, eszköz vagy alkalmazás adott időszakon belül – például 5 bejelentkezési kísérletet percenként vagy 100 API-hívást óránként. A korláton túli kéréseket addig utasítják el, amíg az időablak újra nem indul.

Mit jelent a 429 Too Many Requests hiba?

A 429-es HTTP-állapotkód azt jelenti, hogy túl sok kérést küldtél túl rövid idő alatt, és elérted a sebességkorlátot. A válasz gyakran tartalmaz egy Retry-After fejlécet, amely megmondja, mennyit kell várni. A megoldás: lassíts, várj egy kicsit és próbáld újra, vagy csökkentsd, milyen gyakran hívja az alkalmazásod a szolgáltatást.

Miért van szükség sebességkorlátozásra egy AI-alapú alkalmazásban?

Minden AI-kérés pénzbe kerül, tokenenként. Korlát nélkül egyetlen felhasználó vagy egy bot ezer kérést is küldhet, ami nagy számlát okoz, vagy kimeríti a szolgáltatód kvótáját, és mindenki számára leállítja a funkciót. A felhasználónkénti korlátok kiszámíthatóan tartják a költségeket.

A sebességkorlátozás ugyanaz, mint a throttling?

Szorosan összefüggnek, és gyakran felcserélhetően használják őket. A sebességkorlátozás általában azt jelenti, hogy a korláton túli kéréseket elutasítjuk, míg a throttling azt is jelentheti, hogy lelassítjuk őket, vagy sorba állítjuk, ahelyett hogy azonnal visszautasítanánk.

Megállítja a sebességkorlátozás a DDoS-támadásokat?

Segít kisebb elárasztások és egyedi felhasználók vagy IP-címek visszaélései ellen, de egy nagy, elosztott támadás sok címről egyszerre érkezik. Az ilyen támadások elleni védelem általában a hálózati vagy CDN-szinten történik, mielőtt a forgalom elérné az alkalmazásodat.

Mythex · Pricing · Építs bármit AI-val · Weboldal- és alkalmazássablonok · A Mythex összehasonlítva · AI-alapú alkalmazásépítési szószedet · Ingyenes eszközök AI-alapú alkalmazásépítéshez · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)