سوال در مورد request

1 سال پیش
توسط masoud net آپدیت شد
masoud net ( 7130 تجربه )
1 سال پیش

ما زمانی که api می نویسیم جندین درخواست(request) می فرستیم به سرور اینجوری حجم درخواستها بالا میره و امکان داره سرور هنگ کنه چیکار کنیم این درخواست ها کم بشه

مهدی معتمدی ( 7990 تجربه )
1 سال پیش
تخصص : برنامه نویس FullStack

در زبان یا فریم ورکی که api خود را برنامه نویسی کرده اید، بایستی از کتابخانه های rate limit به صورت middle ware و ... استفاده کنید تا یک کاربر بیش از حد درخواست ارسال نکند.

برای مثال در فریم ورک لاراول این کتابخانه وجود دارد:
https://github.com/GrahamCampbell/Laravel-Throttle

یا در Node.js و express:
https://www.npmjs.com/package/express-rate-limit

Alimotreb ( 199402 تجربه )
1 سال پیش
تخصص : کانفیگ سرور و برنامه نویس

سلام
@netwons
بستگی به تعداد درخواست
منابع سرور و کانفیگ سرور داره

در حد میلیونی باشه درخواست و منابع سرور کم باشه ، بله افت پردازش و هنگی هست

developer ( 32571 تجربه )
1 سال پیش
تخصص : برنامه نویس

خب الگوریتم ها رو بهینه کنید تا جایی که کمترین ریکوئست رو لازم باشه بدید
توی میدلورهای لاراول توی کرنل بخش api میتونید تعداد حداکثر ریکوئست یک کاربر رو مشخص کنید که نتونه با ربات سرور رو دان کنه

'api' => [
        'throttle:60,1',
        'auth:api',
    ],
Mohsen Hassanshahi ( 3080 تجربه )
1 سال پیش
تخصص : برنامه نویس

این نمونه کدی که آقای صفدری گذاشتن بهترین کار هست که می تونید انجام بدید،
خیلی هم راحته فقط باید توی Route ها Middleware رو فراخوانی کنید.
این دوتا عدد روبه روی throttle هم قابل تغییر هستن
عدد اول تعداد مجاز درخواست هست
عدد دوم برحسب دقیقه نوشته میشه
در کد بالا مشخص کرده که 60 درخواست در یک دقیقه می تونه کاربر درخواست کنه

masoud net ( 7130 تجربه )
1 سال پیش

خوب حساب کنیم ما ۱۰۰۰ کاربر هم زمان در سایت ما هر کدوم یک درخواست میفرسته در کل میشه ۱۰۰۰ requestدر یک ثانیه می دونید چه حجمی از سی پی یو درگیر میشه من میخوام این رو کنترل کنم آیا روشی هست برای بهینه کردن یا ساپورت کردن ۱۰۰۰ نفر در یک ثانیه؟
منظورم اینکه این درخواستها رو میشه بریزیم توی رم تا طرف اول بیاد توی رم اگر ان درخواست در رم بود از رم بخونه در غیر این صورت بره از دیتابیس بخونه فکر کنم اینجوری سی پی یو سرور درگیر نمیشه
بزار یک مثال قابل فهم بزنم من یک فایل تکس دارم داخل این فایل ۲۰۰ تا اسم سایت وجود دارهحالا من برنامه نوشتم که بره برای من اطلاعات whoisاین سایتها رو دربیاره و به من نمایش بده اینجا باعث میشه سیستم کرش کنه یا cpuبیشتر درگیر بشه و کارایی سیستم بیاد پایین.بجز از محدود کردن کاربر به تعداد درخواستها آیا راهی وجود داره برای حل این مشکل

برای ارسال پاسخ باید وارد سایت شوید