در معماری میکروسرویسها، Gateway، لایه ای است که بین کاربران و میکروسرویسها قرار میگیرد. نقش اصلی یک Gateway، هدایت درخواستهای کاربران به میکروسرویسهای مناسب و پیاده سازی فرآیند هایی مانند احراز هویت(authentication)، مجوز دسترسی(authorization)، محدود کردن ترافیک شبکه(rate limiting) و... است.
لایه Gateway به عنوان یک نقطه ورود مرکزی در برنامه های میکروسرویسی عمل می کند. این بدان معنی است که نرم افزار کلاینت می تواند از طریق یک اند-پوینت با میکروسرویس ها ارتباط برقرار کنند که فرآیند کلی ارتباط را ساده می کند. زمانی که تمامی ارتباطات از طریق یک رابط صورت میپذیرد، میتوان از بابت فرآیند های احراز هویت و کنترل دسترسی و یکپارچه بودن آن ها اطمینان حاصل کرد.
میکروسرویس ها می توانند به وسیله زبان های برنامه نویسی مختلف پیاده سازی شوند و بر روی سرورها یا کانتینرهای مختلف اجرا شوند. API Gateway پیچیدگی های استفاده از چندین سرویس محتلف را ساده سازی میکند و یک API یکپارچه در اختیار کلاینت قرار میدهد. بنابرین برنامه کلاینت درگیر پیاده سازی این پیچیدگی ها نخواهد بود.
اگر Gateway به درستی طراحی و پیاده سازی نشود، می تواند به یک گلوگاه(bottleneck) تبدیل شود. در معماری میکروسرویس، API Gateway یک مؤلفه مرکزی است که تمام درخواست های دریافتی از کاربران را مدیریت می کند و آنها را به میکروسرویس مناسب ارسال می کند. اگر API Gateway قابل مقیاس پذیری نباشد، میتواند به یک گلوگاه تبدیل شود و باعث تأخیر در پاسخ شود و بر عملکرد کلی سیستم تأثیر بگذارد.
با این حال، راههای مختلفی برای جلوگیری از بوجودآمدن این گلوگاه وجود دارد. یک رویکرد استفاده از مقیاس بندی افقی(horizontal scaling) است که شامل استقرار چندین نمونه از Gateway و توزیع ترافیک ورودی در بین آنها می شود. روش دیگر استفاده از کش و شبکه های توزیع محتوا (CDN) برای کاهش بار وروی است.
علاوه بر این، بهینه سازی کد و پیاده سازی صحیح معماری میکروسرویس ها نیز می تواند به کاهش بار روی Gateway کمک کند. برای مثال، با پیادهسازی میکروسرویسهای کارآمد و بهینه، و همچنین بکارگیری از پیامرسانی ناهمزمان میتوان میزان پردازش مورد نیاز API Gateway را کاهش داد و به آن اجازه داد تا درخواستهای بیشتری را بدون تبدیل شدن به گلوگاه انجام دهد.
ارتباط بین API Gateway و میکروسرویس ها می تواند همزمان یا ناهمزمان باشد. در ارتباطات همزمان(synchronous)، API Gateway قبل از بازگرداندن پاسخ به مشتری منتظر پاسخی از میکروسرویس است. در ارتباطات ناهمزمان(asynchronous)، API Gateway پیامی را در صف پردازش قرار میدهد و بدون انتظار به پردازش درخواست های دیگر ادامه می دهد. برای آن که ارتباط بین Gateway و سرویس ها مدیریت شده و قابل اعتماد باشد، باید مکانیزم های مدیریت خطا و تلاش مجدد به درستی پیاده سازی شوند. در صورت درنظر گرفتن همه این موارد و پیاده سازی صحیح آن ها، میتوان اطمینان حاصل کرد که سیستم به درستی عمل میکند و قابل مقیاس پذیری خواهد بود.
اگر بخواهیم نکات مهم در مورد API Gateway را لیست کنیم، این لیست بصورت زیر خواهد بود:
من محمدرضا باباخانی هستم، توسعه دهنده نرم افزار. در اینجا تجربیات، نظرات و پیشنهادات خودم رو درباره تکنولوژی مینویسم. امیدوارم مطالبی که مینویسم بدردتون بخوره.
ثبت دیدگاه