Ano ang Rate Limiting? Gabay sa Simpleng Wika para sa App Builder
Ang rate limiting ay patakarang naglilimita kung ilang request ang maaaring gawin ng isang tao sa isang sistema sa itinakdang oras — halimbawa, 5 login attempt bawat minuto, o 100 API call bawat oras. Kapag naabot na ang limitasyon, tinatanggihan ang mga susunod na request (kadalasan may error code na 429 Too Many Requests) hanggang sa mag-reset ang time window. Pinoprotektahan nito ang app laban sa pang-aabuso, pinipigilan ang isang mabigat na user na magpabagal sa lahat, at pinipigilan ang lumalaking gastos.
Nakikita mo ang rate limiting mula sa dalawang panig: ang mga serbisyong tinatawag mo ay naglilimita sa iyo, at ang sarili mong app ay dapat maglimita sa mga user nito.
Bakit mahalaga ang rate limiting kapag gumagawa ka gamit ang AI
Madalas kumonekta ang mga app na gawa ng AI sa mga bayad na serbisyo — AI model, email, SMS, mapa — at may gastos ang bawat tawag. Kaya ang rate limiting ay parehong feature sa seguridad at feature sa badyet.
- Kontrol sa gastos. Kung may "ask AI" box ang app mo at walang limitasyon, maaaring magpadala ang bot ng libu-libong request magdamag. Binabayaran mo ang bawat isa.
- Seguridad. Kung walang limitasyon sa login form, maaaring subukan ng attacker ang libu-libong password sa isang account. Ang limit na ilang attempt bawat minuto ay nagpapahirap sa ganitong atake.
- Manatiling online. Ang isang script na nagkakamali — minsan ang sarili mong code na naka-loop — ay maaaring mag-overload sa database mo at magpabagsak sa app.
- Paggalang sa limitasyon ng ibang serbisyo. Kapag masyadong madalas tumawag ang app mo sa isang outside API, ikaw ang nakakatanggap ng mga 429 error, at nasisira ang mga feature para sa mga user mo.
Gagawin ng AI builder ang hinihingi mo. Kapag hindi mo binanggit ang limitasyon, kadalasan ay nawawala ang mga ito.
Pang-araw-araw na paghahalintulad
Isipin ang patakaran ng coffee shop sa libreng refill: "Isang libreng refill bawat customer kada bisita."
- Hindi nito pinipigilan ang sinuman na mag-enjoy ng kape.
- Pinipigilan nito ang isang tao na tumayo sa counter buong araw para magrefill ng flask para sa buong opisina.
- Kapag humingi ang isang tao ng ikaapat na refill, magalang na sasabihin ng barista na "hindi muna ngayon" — iyon ang
429.
Ang mabuting rate limit ay hindi napapansin ng karaniwang customer at napapansin lamang ng taong gumagawa ng kakaiba.
Paano gumagana ang rate limiting
Kailangan ng rate limiter ng tatlong bagay:
| Bahagi | Sinasagot na tanong | Mga halimbawa |
|---|---|---|
| Sino | Kanino binibilang ang mga request? | Per user account, per IP address, per API key |
| Ilan | Ano ang limitasyon? | 5, 60, 1,000 request |
| Bawat anong panahon | Anong window? | Bawat segundo, minuto, oras, araw |
Kapag may dumating na request, tinitingnan ng app ang bilang para sa "sino" na iyon. Nasa ilalim ng limitasyon: dumadaan ang request at tumataas ang bilang. Lumampas sa limitasyon: tinatanggihan ang request.
May ilang karaniwang paraan ng pagbibilang:
| Paraan | Paano ito gumagana | Trade-off |
|---|---|---|
| Fixed window | Nagre-reset ang bilang ayon sa orasan — halimbawa, bawat minuto nang eksakto | Simple, pero pinapayagan ang biglaang dagsa sa hangganan ng dalawang window |
| Sliding window | Tinitingnan ang nakaraang 60 segundo mula ngayon | Mas makinis, bahagyang mas mabigat i-compute |
| Token bucket | May bucket ang bawat user na napupuno sa tuloy-tuloy na bilis; bawat request ay kumukuha ng isang token | Pinapayagan ang maikling biglaang dagsa habang matatag ang average |
Kailangang naka-store ang mga bilang sa lugar na mabilis at shared. Sa iisang maliit na server, sapat na ang memory. Kapag tumakbo na ang app sa maraming makina, kadalasang nasa shared store tulad ng Redis o database ang counter, kung hindi ay bibilangin ng bawat makina nang hiwalay at ang totoong limitasyon ay magiging ilang beses na mas mataas.
Ano ang itsura ng sagot kapag na-rate-limit
Kapag lumampas sa limitasyon ang request, ang maayos na API ay sumasagot ng:
- Status code na
429 Too Many Requests. - Kadalasan ay
Retry-Afterheader, na nagsasabi kung ilang segundo ang hihintayin. - Minsan ay mga header na nagpapakita ng limitasyon mo at kung ilang request pa ang natitira sa window na ito (nag-iiba ang pangalan ayon sa provider).
Dapat tumugon ang app mo sa 429 sa pamamagitan ng paghihintay at pag-retry pagkatapos — mainam gamit ang exponential backoff, na nangangahulugang mas matagal na paghihintay pagkatapos ng bawat nabigong subok (1 segundo, saka 2, saka 4) sa halip na paulit-ulit na kumatok sa serbisyo.
Halimbawang gawa: isang AI writing assistant
Ipagpalagay na gumawa ka ng app kung saan nagpa-paste ng teksto ang mga user at nakakakuha ng AI rewrite.
Kapag walang limitasyon: may sumulat ng script na nagpapadala ng 20,000 request magdamag. Tumataas ang bill ng AI provider mo, at naaabot ng account mo ang sariling rate limit ng provider, kaya nakakakita ng error ang mga totoong user buong umaga.
Kapag may makatwirang limitasyon:
- Bawat naka-sign in na user: 30 rewrite bawat oras sa libreng plano, 300 sa bayad. Kapag lumampas, makikita ng user: "Naabot mo na ang limitasyon ng oras na ito. Subukan muli sa loob ng 12 minuto, o mag-upgrade."
- Bawat IP address sa sign-up form: 5 sign-up bawat oras, para pigilan ang mga bot na gumawa ng libu-libong libreng account para lampasan ang per-user na limitasyon.
- Spending cap na itinakda sa dashboard ng AI provider, bilang huling depensa kung pumalpak ang lahat ng iba.
- Paghawak sa limitasyon ng provider: kapag nagbalik ng 429 ang AI provider, maghihintay at mag-retry ang server nang isa o dalawang beses, saka magpapakita ng magiliw na mensaheng "abala, subukan muli".
Sa server chine-check ang mga limitasyon. Ang limitasyong nasa browser lamang — halimbawa, pag-disable ng button pagkatapos ng 30 click — ay malalampasan ng sinumang direktang tatawag sa API mo.
Mga pangunahing termino
| Termino | Ibig sabihin |
|---|---|
| Rate limit | Pinakamaraming request na pinapayagan sa isang time window. |
| Quota | Mas malaking allowance, kadalasan bawat araw o buwan, minsan nakatali sa bayad na plano. |
| 429 | HTTP status code para sa "too many requests." |
| Retry-After | Response header na nagsasabi kung gaano katagal bago subukan muli. |
| Throttling | Pagpapabagal o pagtanggi sa mga request na lumalampas sa limitasyon. Madalas na ginagamit na kapalit na salita. |
| Exponential backoff | Unti-unting pagtaas ng paghihintay sa pagitan ng mga retry. |
| Burst | Maikling pagtaas ng maraming request nang sabay. |
| Brute-force attack | Pagsubok ng napakaraming password o code hanggang may tumama. |
Mga karaniwang maling akala
- "Para lang sa malalaking app ang rate limiting." Target din ang maliliit na app, dahil ini-scan ng mga bot ang buong internet para sa bukas na form at AI endpoint. Hindi nakadepende sa laki mo ang gastos ng pang-aabuso.
- "Sapat na ang pagtatago ng button." Ang limitasyon sa browser ay pabor lamang, hindi proteksyon. Dapat ipatupad ang totoong limitasyon sa server.
- "Laging patas ang per-IP na limitasyon." Maraming tao ang maaaring magbahagi ng iisang IP address — isang opisina, paaralan, o mobile network. Mas patas ang per-user na limitasyon kapag naka-sign in na ang mga tao.
- "Ibig sabihin ng 429 ay sira ang serbisyo." Ibig sabihin nito ay masyado mo itong tinatawagan. Suriin ang code mo para sa mga loop, at i-cache ang mga resultang bihirang magbago — tingnan ang ano ang caching.
- "Pumapalit ang rate limiting sa spending cap." Gamitin ang dalawa. Maaaring may bug ang mga limitasyon sa app mo; ang spending cap ng provider ang iyong backstop.
Ano ang itatanong sa AI builder mo
- "Magdagdag ng server-side rate limiting sa login, sign-up, password reset, at sa AI endpoint. Magmungkahi ng makatwirang limitasyon."
- "Limitahan ang bawat naka-sign in na user sa [N] AI request bawat oras, at magpakita ng malinaw na mensahe na may oras ng paghihintay kapag naabot na ito."
- "Kapag nagbalik ng 429 ang outside API, mag-retry nang may exponential backoff hanggang 3 beses, saka magpakita ng magiliw na error."
- "Saan naka-store ang mga rate-limit counter? Gagana pa ba ang mga ito kapag tumakbo ang app sa higit sa isang makina?"
- "I-log tuwing may user o IP na naabot ang limitasyon, para matukoy ko ang pang-aabuso."
- "Aling mga outside service ang tinatawagan ng app na ito, at ano ang rate limit nila?"
Rate limiting sa Mythex
Malinaw ang mga docs ng Mythex tungkol dito para sa mga AI feature: ang rate limits, safety, at cost controls sa mga app na ginagawa mo ay sa iyo ang pagdidisenyo — tingnan ang Build an AI app. Hilingin sa agent na magdagdag ng limitasyon sa parehong mensaheng humihingi ng feature. Sa Pro, maaaring tumakbo ang isang na-publish na serbisyo sa hanggang tatlong makina kapag mabigat ang trapiko (tingnan ang Hosting limits), kaya humingi ng mga counter na nasa database at hindi sa memory ng iisang server.
Kaugnay na babasahin: ano ang API, paano gumamit ng LLM APIs, at ang security checklist para sa mga app na gawa ng AI.
Mga tanong
Ano ang rate limiting sa simpleng salita?
Ang rate limiting ay patakarang naglilimita kung ilang request ang maaaring gawin ng user, device, o app sa itinakdang panahon — halimbawa, 5 login attempt bawat minuto o 100 API call bawat oras. Ang mga request na lalampas sa limitasyon ay tinatanggihan hanggang sa mag-reset ang panahon.
Ano ang ibig sabihin ng error na 429 Too Many Requests?
Ang HTTP status na 429 ay nangangahulugang nagpadala ka ng sobrang daming request sa maikling panahon at naabot mo ang rate limit. Kadalasang may kasamang Retry-After header na nagsasabi kung ilang segundo ang dapat hintayin. Ang solusyon ay bumagal, mag-retry pagkatapos ng pahinga, o bawasan kung gaano kadalas tumatawag ang app mo sa serbisyo.
Bakit kailangan ng rate limiting ng app ko na pinapagana ng AI?
Bawat AI request ay may gastos sa tokens. Kapag walang limitasyon, maaaring magpadala ang isang user o bot ng libu-libong request at magpalobo ng bayarin o maubos ang quota ng provider, na nagpapatigil sa feature para sa lahat. Ang per-user na limitasyon ang nagpapanatili ng hulaan na gastos.
Pareho ba ang rate limiting sa throttling?
Magkaugnay ang dalawa at madalas na ginagamit nang palitan. Karaniwang ang ibig sabihin ng rate limiting ay pagtanggi sa mga request na lumalampas sa limitasyon, habang ang throttling ay maaari ring mangahulugang pagpapabagal sa mga ito o paglalagay sa pila sa halip na tuwirang tanggihan.
Pinipigilan ba ng rate limiting ang DDoS attacks?
Nakakatulong ito laban sa maliliit na pagbaha at pang-aabuso mula sa indibidwal na user o IP address, pero ang malaking distributed attack ay nagmumula sa maraming address nang sabay. Ang proteksyon laban sa mga iyon ay karaniwang nangyayari sa network o CDN level, bago pa umabot ang trapiko sa app mo.