فصل چهارم: دروازه و مدیریت ترافیک

احراز هویت و Rate Limiting در Gateway

متمرکز کردن احراز هویت

یکی از مهم‌ترین وظایف Gateway، احراز هویت متمرکز است. به‌جای اینکه هر میکروسرویس داخلی جداگانه توکن کاربر را بررسی کند، Gateway یک‌بار توکن (معمولاً JWT) را اعتبارسنجی می‌کند و اطلاعات هویت را (مثل شناسه‌ی کاربر) در هدرهای داخلی به سرویس‌های پشتی ارسال می‌کند:

Client → [Authorization: Bearer eyJhbGc...] → Gateway
Gateway → [X-User-Id: 4821] → Order Service

این یعنی سرویس‌های داخلی می‌توانند به هدر ساده‌ی X-User-Id اعتماد کنند (چون فقط از طریق شبکه‌ی داخلی و پس از عبور از Gateway به آن‌ها می‌رسد) بدون نیاز به رمزگشایی و اعتبارسنجی JWT در هر سرویس.

محدود کردن نرخ درخواست

Rate Limiting از سوءاستفاده یا فشار بیش‌ازحد روی سیستم جلوگیری می‌کند؛ مثلاً محدود کردن هر کاربر به ۱۰۰ درخواست در دقیقه:

rate_limit:
  requests_per_minute: 100
  key: user_id
  on_exceed: "429 Too Many Requests"

پیاده‌سازی این محدودیت در سطح Gateway به‌جای هر سرویس، هم از تکرار کد جلوگیری می‌کند و هم تضمین می‌کند محدودیت به‌طور یکسان روی کل سیستم اعمال شود. الگوریتم‌های رایج برای این کار شامل Token Bucket و Sliding Window هستند. بسیاری از ابزارهای آماده‌ی Gateway مثل Kong یا NGINX این قابلیت‌ها را به‌صورت پیکربندی ساده، بدون نیاز به کدنویسی دستی، فراهم می‌کنند.

برای ذخیره‌ی پیشرفت و شرکت در آزمون، وارد شوید — رایگان است.