مختصری از الگوی طراحی میکروسرویس

میکروسرویس ها (microservices) سرویس های نرم افزاری هستند که فانکشنال خاصی را در یک نرم افزار ارائه می کنند که نگهداری، کنترل و توزیع این سرویس ها آن به طور مستقل از هم انجام شود.

اهداف معماری میکروسرویس ها:

  • کاهش هزینه های طراحی، پیاده سازی و نگهداری سرویس ها
  • افزایش سرعت
  • افزایش تاب آوری شبکه سرویس ها
  • بهبود دید شبکه ها و سرویس ها

انواع الگوهای طراحی (design pattern) در میکروسرویس ها

دیزاین پترن های زیادی برای میکروسرویس ها وجود دارد. رایج ترین الگوی طراحی میکروسرویس ها عبارت اند از: جمع آوری کننده، درگاه API، زنجیره ای، پیامرسانی غیرهمزمان، پایگاه داده یا داده اشتراکی، شاخه ای، تجزیه ای و… . در ادامه به بررسی سه تا از پرکاربردترین الگوها برای معماری میکروسرویس ها خواهیم پرداخت.

الگوی طراحی جمع آوری کننده (Aggregator)

در دنیای کامپیوتر جمع آوری کننده به سایت یا نرم افزاری اطلاق می شود که داده های مرتبط را جمع آوری کرده و نمایش می دهد. این الگو برای زمان هایی مناسب است که برای نمایش یک خروجی نیاز به ترکیب داده ها از سرویس های گوناگون وجود دارد. این الگو بر مبنای اصول DRY پایه ریزی شده که طبق آن می توانید یک منطق را به میکروسرویس های ترکیبی اعمال کرده و آن را در یک سرویس جمع آوری نمایید.

الگوی طراحی درگاه API

میکروسرویس ها به گونه ای ساخته شده اند که هر کدام وظیفه و عملکرد خاص خود را داشته باشند. اما وقتی یک نرم افزار به سرویس های مستقل کوچکتر تقسیم می شود، مشکلاتی ممکن است پدید آید. برای مثال رابط های کاربری (UI) مختلف برای پاسخگویی به سرویس دیتابیس بک اند یکسان، به داده های مختلفی نیاز دارند. یا مثلا وقتی به اطلاعات چند میکروسرویس به طور همزمان احتیاج داشته باشیم، چه باید بکنیم؟ این الگو می تواند به این سوال پاسخ دهد و مشکلاتی از این قبیل را حل کند.

الگوی طراحی زنجیره ای

این الگوی طراحی یک خروجی واحد که در حقیقت ترکیبی از چندین خروجی زنجیره ای است، تولید می کند. برای مثال اگر زنجیره ای از سه سرویس زنجیره ای داریم، ابتدا سرویس A درخواست کاربر را دریافت میکند. سپس با سرویس B ارتباط برقرار کرده و داده های آن را جمع آوری می کند. در نهایت سرویس B با سرویس C ارتباط برقرار کرده و خروجی نهایی را ارائه می کند. همه این سرویس ها از HTTP برای رساندن درخواست و پاسخ استفاده میکنند. به علاوه از آنجا که کاربر باید تا پایان زنجیره برای دریافت پاسخ صبر کند توصیه میشود که زنجیره های کوتاه در این الگو استفاده شود.

منبع:

https://www.edureka.co/blog/microservices-design-patterns

ارسال شده در برنامه نویسیبرچسپ ها:

یک دیدگاه بنویسید