masoud net
5 سال پیش توسط masoud net مطرح شد
5 پاسخ

سوال در مورد request

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


ثبت پرسش جدید
مهدی معتمدی
تخصص : مهندس نرم افزار
@mahdi.motamedi 5 سال پیش مطرح شد
0

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

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

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


Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 5 سال پیش مطرح شد
0

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

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


developer
تخصص : برنامه نویس
@developer 5 سال پیش مطرح شد
0

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

'api' => [
        'throttle:60,1',
        'auth:api',
    ],

Mohsen Hassanshahi
تخصص : برنامه نویس
@a.hassanshahi74 5 سال پیش مطرح شد
0

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


masoud net
@netwons 5 سال پیش آپدیت شد
0

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


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام