محدودیت نرخ
اگر در حال ساخت یک API برای استفاده عمومی هستید، بسیار محتمل است که بخواهید نوعی محدودیت نرخ را پیادهسازی کنید تا از ایجاد درخواستهای بیش از حد زیاد در زمان کوتاه توسط کلاینتها و ایجاد فشار بیش از حد بر سرور خود جلوگیری کنید.
در این بخش کتاب، ما قصد داریم برای کمک به این کار، یک middleware بسازیم.
اساساً، میخواهیم این middleware بررسی کند که در چند ثانیه اخیر چند درخواست دریافت شده است و — اگر تعداد بیش از حد زیاد باشد — باید به کلاینت پاسخ 429 Too Many Requests ارسال کند. ما این middleware را قبل از هندلرهای اصلی برنامه خود قرار میدهیم تا این بررسی قبل از هر پردازش سنگینی مانند رمزگشایی بدنه درخواست JSON یا کوئری پایگاه داده انجام شود.
شما یاد خواهید گرفت:
درباره اصول پشت الگوریتمهای محدودکننده نرخ token-bucket و نحوه استفاده از آنها در زمینه یک API یا برنامه وب.
نحوه ساخت middleware برای محدود کردن نرخ درخواستها به endpointهای API خود، ابتدا با ایجاد یک محدودکننده نرخ سراسری سپس گسترش آن برای پشتیبانی از محدودیت بر اساس آدرس IP هر کلاینت.
نحوه پیکربندی رفتار محدودکننده نرخ در زمان اجرا، از جمله غیرفعال کردن کامل محدودکننده نرخ برای اهداف تست.