Nasser Niazy
Nasser Niazy
خواندن ۱ دقیقه·۳ سال پیش

Rate Limit on third-party


اگه از یه تردپارتی دارید ای پی آی می گیرید خیلی بعیده بهتون اجازه استفاده بدون محدودیت رو بدهند چون ممکنه یه نفر رگباری استفاده کنه و بقیه نتونن استفاده کنن.
تو این حالت میان و روی ای پی آی محدودیت میزارن که بهش میگن
Rate Limit
بسته به توان سرویس های مختلف تعداد متفاوت هست که معمولآ در یک دقیقه اندازه گیری میشه .
حالا برای رعایت این سقف می تونید از یک امکان جالب لاراول استفاده کنید که با ردیس پیاده شده و در صورتی که سقف پر شد جابی که می خواد ای پی آی کال بزنه رو به تاخیر بیاندازید .اسم این تابع از کلاس ردیس هست
#throttle
نحوه کار این تیکه کد رو در تصویر زیر قسمت اول می بینید که هر ۶۰ ثانیه اجازه ۱۰۰ تا درخواست رو میده.
حالا اگه بخواید تعداد جابی که همزمان دارن اجرا میشن رو محدود کنید همین کلاس ردیس یه امکان باحال دیگه داره یه اسم :‌
#funnel
عملکرد این کلاس ها بسیار ساده است ولی فوق العاده کاربردی هستند .
قسمت دوم عکس نحوه استفاده از این تابع رو در لاراول نشون میده.
در هر دوی این توابع ورودی اول تابع
then
در صورت رعایت شرایط اجرا میشه و ورودی دوم در صورت تخلف از شرایط تابع اجرا میشه و اجرای جاب رو ۳۰ ثانیه به تاخیر می اندازه

پیاده سازی این متد با ردیس در زبان های دیگه هم ساده است
پیاده سازی برای دات نت:
https://lnkd.in/dcHFrfnA
پیاده سازی برای نود جی اس :
https://lnkd.in/dHRd2uyd
پیاده سازی برای جاوا:
https://lnkd.in/dvftiupW

redisratelimitsoftware archecture
بیش از ۱۰ سال سابقه برنامه نویسی وب و سیستم های پیچیده. معماری و رهبری پروژه های بزرگ نرم افزاری.
شاید از این پست‌ها خوشتان بیاید