Rate limiting гэж юу вэ? Аппликейшн бүтээгчдэд зориулсан энгийн гарын авлага
Rate limiting бол тодорхой хугацаанд хэн нэгэн системд хэдэн хүсэлт илгээж болохыг хязгаарладаг дүрэм юм — жишээ нь минутанд 5 нэвтрэх оролдлого, эсвэл цагт 100 API дуудлага. Хязгаарт хүрсний дараа цаашид ирсэн хүсэлтийг хугацааны цонх шинэчлэгдэх хүртэл татгалзана (ихэвчлэн 429 Too Many Requests алдааны кодтойгоор). Энэ нь аппликейшныг урвуулгаас хамгаалж, нэг хүнд их ачаалал өгсөн нь бусдыг удаашруулахаас сэргийлж, хяналтгүй зардлыг зогсооно.
Rate limiting-ийг хоёр талаас нь тааралдана: таны дуудаж буй үйлчилгээнүүд таныг хязгаарлана, харин таны өөрийн аппликейшн хэрэглэгчдээ хязгаарлах ёстой.
AI-аар бүтээхэд rate limiting яагаад чухал вэ
AI-аар бүтээсэн аппликейшнүүд ихэвчлэн төлбөртэй үйлчилгээнд холбогддог — AI загвар, имэйл, SMS, газрын зураг — мөн дуудлага бүр мөнгө зардаг. Иймд rate limiting нь аюулгүй байдлын болон төсвийн онцлог юм.
- Зардлын хяналт. Таны аппликейшнд «AI-гээс асуух» талбар байгаа бөгөөд хязгаар байхгүй бол бот шөнөдөө мянга мянган хүсэлт илгээж болно. Тэр бүрийг та төлнө.
- Аюулгүй байдал. Нэвтрэх маягт дээр хязгаар байхгүй бол халдагч нэг бүртгэлд мянга мянган нууц үг туршиж болно. Минутанд хэдхэн оролдлого гэсэн хязгаар үүнийг боломжгүй болгодог.
- Онлайн байлгах. Нэг буруу ажиллаж буй скрипт — заримдаа таны өөрийн код давтагдах цикл дотор гацсан — өгөгдлийн сангаа хэтрүүлж, аппаа унагаж болно.
- Бусад үйлчилгээний хязгаарыг хүндэтгэх. Таны аппликейшн гадны API-г хэт олон дуудвал таньд 429 алдаа ирж, таны хэрэглэгчдэд онцлог эвдэрнэ.
AI бүтээгч таны хүссэн зүйлийг бүтээнэ. Хэрэв та хязгаарын тухай дурдаагүй бол тэр ихэвчлэн орхигддог.
Өдөр тутмын жишээ
Кофены дэлгүүрийн «үнэгүй дахин цай» журмыг төсөөлөөрэй: «Үйлчлүүлэгч бүр зочлох бүрт нэг удаа үнэгүй дахин авна.»
- Энэ нь хэн ч кофе уухыг хориглодоггүй.
- Энэ нь нэг хүнийг өдөржин харанхуй дээр зогсоод бүх оффисынхоо термосыг дүүргэхээс сэргийлдэг.
- Хэн нэгэн дөрөв дахь удаагаа авах гэхэд бариста эелдэгхэн «одоохондоо боломжгүй» гэж хэлнэ — энэ бол
429.
Сайн rate limit нь энгийн үйлчлүүлэгчдэд харагдахгүй, харин ер бусын зүйл хийж буй хүнд л мэдэгдэгддэг.
Rate limiting хэрхэн ажилладаг вэ
Rate limiter-д гурван зүйл хэрэгтэй:
| Хэсэг | Ямар асуултад хариулдаг вэ | Жишээ |
|---|---|---|
| Хэн | Чиний хүсэлтийг хэн тоолж байна вэ? | Хэрэглэгчийн бүртгэл тус бүр, IP хаяг, API түлхүүр |
| Хэдэн | Хязгаар хэд вэ? | 5, 60, 1,000 хүсэлт |
| Ямар хугацаанд | Ямар цонхонд? | Секунд, минут, цаг, өдөр тус бүрээр |
Хүсэлт ирэх үед аппликейшн тэр «хэн»-ийн тооллыг шалгана. Хязгаараас доош бол хүсэлт дамжина, тоо нэмэгдэнэ. Хязгаараас дээш бол хүсэлтийг татгалзана.
Тоолох хэдэн түгээмэл арга байдаг:
| Арга | Хэрхэн ажилладаг | Солилцоо |
|---|---|---|
| Тогтсон цонх | Тоолуур цагийн дагуу шинэчлэгддэг — жишээ нь минут бүр минутын эхэнд | Энгийн, гэхдээ хоёр цонхны уулзвар дээр оргилд хүргэж болно |
| Гулсах цонх | Яг одоо-оос сүүлийн 60 секундыг харна | Жигд, тооцоолоход арай илүү ажил |
| Token bucket | Хэрэглэгч бүр тогтмол хурдаар дүүрдэг сав тэй; хүсэлт бүр нэг токен авна | Богино оргилд зөвшөөрч, дундаж нь тогтмол байлгана |
Тооллыг хурдан, хуваалцсан газар хадгалах хэрэгтэй. Нэг жижиг серверт санах ой хангалттай. Аппликейшн хэд хэдэн машин дээр ажиллаж эхлэхэд тоолуур ихэвчлэн Redis эсвэл өгөгдлийн сан шиг хуваалцсан санд байрлана, эс тэгвээс машин бүр тусдаа тоолж, бодит хязгаар хэдэн дахин өндөр болно.
Rate limit-д хүрсэн хариу ямар харагддаг вэ
Хязгаараас хэтэрсэн үед сайн API ингэж хариулна:
429 Too Many Requestsстатус код.- Ихэвчлэн
Retry-Afterтолгой, хэдэн секунд хүлээхийг заана. - Заримдаа таны хязгаар болон энэ цонхонд үлдсэн хүсэлтийг харуулсан толгойнууд (нэрс үйлчилгээ тус бүрт өөр байдаг).
Аппликейшн 429-д хариулахдаа хүлээж дараа нь дахин оролдох ёстой — тохиромжтой нь exponential backoff, энэ нь алдаа бүрийн дараа арай урт хүлээх гэсэн үг (1 секунд, дараа нь 2, дараа нь 4), үйлчилгээг дахин дахин цохихын оронд.
Жишээ ажил: AI бичих туслах
Хэрэглэгчид текст буулгаж, AI-аас дахин бичсэн хувилбар авдаг аппликейшн бүтээсэн гэж бодъё.
Хязгааргүй бол: хэн нэгэн шөнөдөө 20,000 хүсэлт илгээх скрипт бичнэ. AI үйлчилгээгчийн төлбөр огцом өснө, мөн таны данс үйлчилгээгчийн өөрийн rate limit-д хүрч, жинхэнэ хэрэглэгчид өглөөжин алдаа харна.
Ухаалаг хязгаартай бол:
- Нэвтэрсэн хэрэглэгч бүрт: үнэгүй төлөвлөгөөнд цагт 30 дахин бичих, төлбөртэйд 300. Хязгаараас хэтэрвэл хэрэглэгч ингэж харна: «Энэ цагийн хязгаарт хүрлээ. 12 минутын дараа дахин оролдоно уу, эсвэл дээшлүүлнэ үү.»
- Бүртгүүлэх маягтын IP хаяг бүрт: цагт 5 бүртгэл, хэрэглэгч бүрийн хязгаарыг тойрохын тулд боломжийн дагуу мянга мянган үнэгүй бүртгэл үүсгэхийг ботуудаас сэргийлэх.
- Зардлын дээд хязгаар AI үйлчилгээгчийнхээ удирдлагын самбарт тохируулсан бөгөөд бусад бүх зүйл бүтэлгүйтвэл сүүлийн хамгаалалт.
- Үйлчилгээгчийн хязгаарыг зохицуулах: хэрэв AI үйлчилгээ 429 буцаавал таны сервер хүлээж нэг эсвэл хоёр удаа дахин оролдоно, дараа нь «завгүй байна, дахин оролдоно уу» гэсэн эелдэг мессеж харуулна.
Хязгаарыг серверт шалгана. Зөвхөн хөтөч дээр байдаг хязгаар — жишээ нь 30 товшилтын дараа товчийг идэвхгүй болгох — хэн ч таны API-г шууд дуудвал тойрч болно.
Гол нэр томьёо
| Нэр томьёо | Утга |
|---|---|
| Rate limit | Цонхонд зөвшөөрөх хүсэлтийн дээд тоо. |
| Квот | Ихэвчлэн өдөр эсвэл сараар өгөх илүү том хэмжээ, заримдаа төлбөртэй төлөвлөгөөтэй холбоотой. |
| 429 | «Хэт олон хүсэлт» гэсэн HTTP статус код. |
| Retry-After | Дахин оролдохоосоо өмнө хэдэн секунд хүлээхийг заасан хариуны толгой. |
| Throttling | Хязгаараас хэтэрсэн хүсэлтийг удаашруулах эсвэл татгалзах. Ихэвчлэн ижил утгаар хэрэглэдэг. |
| Exponential backoff | Дахин оролдлогын хооронд аажмаар урт хүлээх. |
| Burst | Нэг зэрэг олон хүсэлтийн богино оргил. |
| Brute-force халдлага | Нэг нь таарах хүртэл маш олон нууц үг эсвэл код туршиж үзэх. |
Түгээмэл буруу ойлголт
- «Rate limiting зөвхөн том аппликейшнд хэрэгтэй.» Жижиг аппликейшн ч бай онилогддог, учир нь ботууд нээлттэй маягт болон AI endpoint-уудыг интернэтээр хайдаг. Урвуулгын зардал таны хэмжээнээс хамаардаггүй.
- «Товчийг нуух хангалттай.» Хөтчийн талын хязгаар бол хамгаалалт биш, зөвхөн эелдэг зан. Жинхэнэ хязгаарыг серверт хэрэгжүүлэх ёстой.
- «IP-д суурилсан хязгаар үргэлж шударга.» Олон хүн нэг IP хаягийг хуваалцдаг — оффис, сургууль, гар утасны сүлжээ. Хүмүүс нэвтэрсний дараа хэрэглэгч тус бүрийн хязгаар илүү шударга.
- «429 гэдэг нь үйлчилгээ эвдэрсэн гэсэн үг.» Энэ нь та хэт олон удаа дуудаж байна гэсэн үг. Кодоо давталтад шалга, өөрчлөгддөггүй үр дүнг кэшлэ — кэш гэж юу вэ гэсэн хуудсыг үзнэ үү.
- «Rate limiting зардлын дээд хязгаарыг орлоно.» Хоёуланг нь ашигла. Аппын хязгаарт алдаа гарч болно; үйлчилгээгчийн зардлын дээд хязгаар бол таны сүүлийн хамгаалалт.
AI бүтээгчээсээ юу асуух вэ
- «Нэвтрэх, бүртгүүлэх, нууц үг сэргээх, AI endpoint дээр серверийн талын rate limiting нэм. Ухаалаг хязгаарууд санал болго.»
- «Нэвтэрсэн хэрэглэгч бүрийг цагт [N] AI хүсэлтээр хязгаарла, хязгаарт хүрэхэд хүлээх хугацаатай тодорхой мессеж харуул.»
- «Гадны API 429 буцаавал цагт 3 удаа хүртэл exponential backoff-оор дахин оролд, дараа нь эелдэг алдааны мессеж харуул.»
- «Rate-limit тоолуурууд хаана хадгалагдаж байна вэ? Аппликейшн хэд хэдэн машин дээр ажиллавал тэд үргэлжлүүлэн ажиллах уу?»
- «Хэрэглэгч эсвэл IP хязгаарт хүрэх бүрийг бүртгэ, ингэснээр урвууг олж харж болно.»
- «Энэ аппликейшн ямар гадны үйлчилгээг дуудаж байгаа вэ, тэдний rate limit хэд вэ?»
Rate limiting Mythex дээр
Mythex-ийн docs AI онцлогийн хувьд энэ талаар шууд хэлдэг: таны бүтээсэн аппликейшн дэх rate limit, аюулгүй байдал, зардлын хяналтыг өөрөө зохион бүтээх ёстой — үзэх: AI аппликейшн бүтээх. Боломж хүсэх мессежтэйгээ нэг дор хязгаар нэмэхийг агентаас хүс. Pro дээр нийтлэгдсэн үйлчилгээ ачаалал их үед гурван машин хүртэл ажиллаж чадна (үзэх: Хостингийн хязгаар), тиймээс нэг серверийн санах ойд биш өгөгдлийн санд амьдардаг тоолуур хүс.
Холбоотой уншлага: API гэж юу вэ, LLM API-уудыг хэрхэн ашиглах вэ, мөн AI-аар бүтээсэн аппликейшнд зориулсан аюулгүй байдлын жагсаалт.
Асуултууд
Rate limiting энгийнээр юу вэ?
Rate limiting бол тодорхой хугацаанд хэрэглэгч, төхөөрөмж эсвэл аппликейшн хэдэн хүсэлт илгээж болохыг хязгаарладаг дүрэм юм. Жишээ нь минутанд 5 нэвтрэх оролдлого эсвэл цагт 100 API дуудлага. Хязгаараас хэтэрсэн хүсэлтүүдийг цонх шинэчлэгдэх хүртэл татгалзана.
429 Too Many Requests алдаа юу гэсэн үг вэ?
HTTP статус 429 нь богино хугацаанд хэт олон хүсэлт илгээж, rate limit-д хүрснийг илэрхийлнэ. Хариунд ихэвчлэн хүлээх хугацааг заасан Retry-After толгой мэдээлэл байдаг. Засах арга нь удаашруулах, түр хүлээгээд дахин оролдох, эсвэл аппаасаа үйлчилгээг дуудах давтамжийг бууруулах.
AI-д суурилсан аппликейшндаа яагаад rate limiting хэрэгтэй вэ?
AI хүсэлт бүр таны токенээр мөнгө зардаг. Хязгаар байхгүй бол нэг хэрэглэгч эсвэл бот мянга мянган хүсэлт илгээж, том төлбөр үүсгэх эсвэл AI үйлчилгээгчийн квотыг шавхаж, бүх хүний онцлогийг унагаж болно. Хэрэглэгч тус бүрийн хязгаар зардлыг таамаглах боломжтой байлгана.
Rate limiting ба throttling ижил үү?
Тэд маш ойр бөгөөд ихэвчлэн ээлжлэн хэрэглэгддэг. Rate limiting нь ихэвчлэн хязгаараас хэтэрсэн хүсэлтийг татгалзах гэсэн утгатай, харин throttling нь татгалзахын оронд удаашруулах эсвэл дараалалд оруулах гэсэн утгатай байж болно.
Rate limiting DDoS халдлагыг зогсоох уу?
Энэ нь хувь хүн эсвэл IP хаягуудаас гарах жижиг үерлэлт болон урвууд дээр тусалдаг ч олон хаягаас нэг зэрэг ирдэг том тархсан халдлагыг зогсоохгүй. Ийм халдлагаас хамгаалалт ихэвчлэн сүлжээ эсвэл CDN түвшинд, түгээмэл ачаалал аппд хүрэхээс өмнө хийгддэг.