JavadAgha
JavadAgha
خواندن ۲ دقیقه·۵ ماه پیش

API gateway چه کاری انجام می دهد؟

Gateway API یک ابزار مدیریت API است که بین یک سرویس client و مجموعه‌ای از سرویس‌های backend قرار می‌گیرد. این یک نقطه‌ی ورود واحد به سیستمی است که معماری داخلی سیستم را در بر می‌گیرد و یک API ارائه می‌دهد که برای هر سرویس client متناسب‌سازی شده است. همچنین مسئولیت‌های دیگری مانند احراز هویت(authentication)، مانیتورینگ، توزیع بار، کش(caching)، محدودکردن سرعت(throttling)، الگوگیری(logging) و غیره را بر عهده دارد.

چرا به Gateway API نیاز داریم؟

جزئیات APIهایی که توسط میکروسرویس‌ها ارائه می‌شوند، اغلب با نیازهای یک سرویس‌گیرنده متفاوت است. میکروسرویس‌ها معمولاً APIهای با جزئیات دقیق ارائه می‌دهند، به این معنی که سرویس‌گیرنده‌ها باید با چندین سرویس تعامل داشته باشند. ازاین‌رو، یک دروازهٔ API می‌تواند یک نقطه‌ی ورود واحد برای همه سرویس‌گیرنده‌ها با برخی ویژگی‌های اضافی و مدیریت بهتر ارائه دهد.

ویژگی‌ها

  • Authorizationو Authentication
  • Service discovery
  • Reverse Proxy
  • Caching
  • Security
  • Retry and Circuit breaking
  • Load balancing
  • Logging, Tracing
  • API composition
  • Rate limiting and throttling
  • Versioning
  • Routing
  • blacklisting یا IP whitelisting

شکل زیر جزئیات را نشان می‌دهد.


مرحله1- client یک درخواست HTTP به دروازه API ارسال می کند.

مرحله 2- gateway API ویژگیهای موجود در درخواستهای HTTP را تجزیه و اعتبارسنجی می کند.

مرحله 3- gateway API بررسی های لیست مجاز/لیست سیاه را انجام می دهد.

مرحله 4 - gateway API برای احراز هویت (authentication) و مجوز دادن (authorization) با یک ارائه دهنده اعتبار صحبت می کند

مرحله 5 - قوانین محدودیت نرخ (rate limiting) روی درخواست ها اعمال می شود. در صورت عبور از حد مجاز، درخواست رد می شود.

مراحل 6 و 7 - اکنون که درخواست بررسی های اولیه را پشت سر گذاشته است،gateway API با مطابقت مسیر، سرویس مرتبط را برای مسیریابی پیدا میکند.

مرحله 8 - gateway API درخواست را به پروتکل مناسب تبدیل می کند و آن را به میکروسرویس های backend ارسال می کند.

مراحل 9 تا :12 gateway API می تواند خطاها را به درست ی مدیریت کند و در صورت نیاز به زمان بیشتر برا ی بازی ابی به کمک breaker circuit با خرابی ها مقابله کند.همچنین می تواند از ساختار (Kibana-Logstash-Elastic (ELK برای الگو گیری ومانیتورینگ استفاده کند. همچنین گاهی اوقات داده ها را در gateway API کَش می کنیم.



منبع: system-design.ir

api gatewayload balancermicroserviceطراحی سیستم های نرم افزاریاحراز هویت
کنجکاو در مباحث مهندسی نرم افزار
شاید از این پست‌ها خوشتان بیاید