Блог

Біз өз қызметтерімізді өзіміз шектеп тастаған едік

Mythex API-і бір желі мекенжайынан минутына 300 сұрауға рұқсат береді. Бұл лимит бір адам немесе скрипт API-ді басып алмас үшін бар. Өндірісте ол оның орнына өз қызметтерімізді бас тартуға бастады — published қолданбаларға қызмет көрсететін edge бөлігін және AI агентін іске қосатын қызметті — себебі олардың әрқайсысы API-ге бірнеше ортақ мекенжайдан ғана қол жеткізеді. Ішкі тіркелгі деректерімізбен жіберілген сұраулар енді лимиттен босатылған, ал басқа барлығы бұрынғыдай шектеледі.

Белгісі

API біздің ішкі қоңыраулардың кейбіріне 429 Too Many Requests жауап бере бастады. Үш түрлі қоңырау соққыға ұшырады, әрқайсысы Mythex-ті пайдаланатын біреу үшін маңызды:

  • Теңшелген домендегі қолданба қай жерде тұрғанын анықтау. Келуші жеке домендегі жарияланған қолданбаны ашқанда, edge сайттың қайда екенін API-ден сұрайды. Онда 429 — сайтқа жете алмайтын келуші.
  • Агенттің іске қосылған айналымын сақтау. Агент жұмыс істеп жатқанда, оның прогресі жүріп жатқанда сақталады, сондықтан жауап жаңарту немесе үзілген байланыстан кейін сақталады. Онда 429 — сақталмаған прогресс.
  • Preview-ге қолжетімділікті тексеру. Құрастырып жатқан қолданбаңыздың preview-і қорғалған, және қорғаныс API-ден сұрайды. Онда 429 — ашылмайтын preview.

Бұның ешқайсысы API-ді шақырған адамдар болған жоқ. Барлығы біз едік.

Неліктен болды

Мекенжай бойынша лимит бір болжам жасайды: бір мекенжай шамамен бір шақырушы. Адамдар үшін бұл жеткілікті жақын. Өз инфрақұрылымымыз үшін ол қате.

  • Жарияланған қолданбаларға және preview-ге қызмет көрсететін edge сервисі API-ге бірнеше ортақ шығыс мекенжайынан жүгінеді. Әрбір жарияланған қолданбаның әрбір келушісі мен әрбір preview тексеруі сол бірнеше мекенжайдың біреуінен келген сияқты көрінеді.
  • Оркестратор — агент айналымдарын іске қосатын сервис — API-ге бір контейнер мекенжайынан жүгінеді. Әр пайдаланушының әрбір жұмыс істеп тұрған айналымы оны бөліседі.

Сондықтан бір адамға арналған бюджет бүкіл сервистің барлық трафигіне бөлінген. Ол сервистер оны арасында таусып тастады, ал лимитер айтылғанды орындады: оларды бас тартты.

Түзету

Біздің ішкі сервистеріміз өздерін тиісінше дәлелдейді. Әрбір ішкі қоңырау ішкі токен алып жүреді, және API-дің ішкі бөлімі астындағы әрбір маршрут олар ештеңе істемей тұрып, сол токенді тексереді.

Енді жылдамдық шектеушісі сол тексеруді пайдаланады. Ішкі токеніміздің мәніне сәйкес келетін сұрау рұқсат тізіміне енеді және мекенжай бойынша бюджетке есептелмейді. Қалғанының бәрі бұрынғыдай есептеледі: мекенжайға минутына 300 сұрау.

Бұл оған ашық есік болмауы үшін екі деталь маңызды болды:

  1. Қате токенге рұқсат жоқ. Рұқсат тізімі тек нақты ішкі токенге сәйкес келеді. Жасанды токені бар сұрау да басқалар сияқты есептеледі және шектеледі, ал ішкі маршруттар оны әлі де 401 Unauthorized арқылы қабылдамайды.
  2. Лимиттің өзі өзгермеді. Орын босату үшін санды көтермедік. Оны көтеру мәселені трафик қайта өскенше жасырып тұрар еді, ал лимит қорғайтын жағдай үшін қорғанысты әлсіретер еді.

Лимитердің баптауларын бір шағын функцияға жинадық және соған тесттер жаздық. Бірі ішкі токенмен 20 сұрау жіберіп, лимитті 5-ке орнатқан шектеушіге беріп, 20-сы да сәтті өтуі керек деп күтеді. Екіншісі бір мекенжайдан қарапайым сұрауларды жіберіп, алғашқы бесеуі сәтті өтіп, кейінгілері бас тартылуы керек деп күтеді. Үшіншісі жалған токенмен сұрауларды жіберіп, олардың дәл осылай бас тартылуын күтеді.

Одан не алдық

  • Лимиттер болжамдармен келеді. «Бір мекенжай, бір шақырушы» мекенжай бойынша лимитке кірістірілген. Өз қызметтеріңіз ортақ мекенжайлардың артында тұрғанда ол дұрыс болмай қалады — және көп қызмет солай: жүктеме теңестірушілер, edge желілер, контейнерлер, кеңселік желілер.
  • Өз трафигіңізді мекенжаймен емес, бірегейлікпен ажыратыңыз. Мекенжай трафиктің қалай келетінін білдіреді, кім жібергенін емес. Бізде қоңырау біздікі екенін дәлелдейтін тіркелгі деректері бұрыннан бар еді; шектеуші оған қарамаған еді.
  • Санды көтеру арқылы түзетпеңіз. Үлкенірек лимит 429-ды біраз уақытқа жоятын, қорғанысты азайтатын және трафик қайта өскенде қайтадан істен шығатын еді.
  • Кімнің шектеліп жатқанын қараңыз. Өз қызметіңізге түскен 429 — лимиттеріңіз туралы баг хабарламасы, шектеуші жұмыс істеп тұрғанының белгісі емес.

Егер Mythex-те құрастырсаңыз, не өзгереді

Сіз ештеңе өзгертудің қажеті жоқ. Жарияланған қолданбалар теңшелген домендерде, агент айналымдары және preview-лер Mythex-тің қалған бөлігі қаншалықты жүктелгеніне енді тәуелді емес. Сіздің қолданбаңыздың өз трафигі — сіздің ісіңіз: бұл жерде сипатталған лимит біздің API-де, сіз жариялаған қолданбаларда емес.

Өз backend-іңіз болса, кез келген қосқан лимитке сол тұзақ қатысты. Бұл туралы API деген не және AI арқылы жасалған қолданбаларға арналған қауіпсіздік тізімі нұсқаулықтары жақсы бастама. Біздің инфрақұрылымның өзіміз үшін кедергі болған басқа жағдайы үшін деплойларды нөлдік 502 қатесіне қалай жеткіздік жазбасын қараңыз.

Mythex · Pricing · ЖИ көмегімен кез келген нәрсені жасаңыз · Сайттар мен қосымшаларға арналған үлгілер · Mythex салыстыруда · ЖИ-мен қосымша жасау сөздігі · ЖИ-мен қосымша жасауға арналған тегін құралдар · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն 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 简体中文 繁體中文(香港) 繁體中文(台灣)