برنامه نویسی

نحوه ساخت میکروسرویس با Docker – BONUS!!

سلام 👋

این احتمالاً آخرین قسمت در سری اصول اولیه میکروسرویس ها است، اما مطمئناً کمترین آن نیست. امروز می‌خواهیم ببینیم که چگونه می‌توانیم خدمات فردی را افزایش دهیم و تعادل بار را اعمال کنیم. این کار باعث افزایش عملکرد در سناریوهای با ترافیک بالا و افزایش زمان به‌روزرسانی برنامه ما می‌شود.

بدون مقدمه، بیایید داخل شیرجه بزنیم

تخم ریزی ظروف متعدد

اول از همه، ما باید چندین کانتینر از سرویسی را که می‌خواهیم تعادل بار را روی آن اعمال کنیم، ایجاد کنیم. بیایید از سرویس محصولات برای این آزمایش استفاده کنیم.

ما می توانیم تغییراتی در آن ایجاد کنیم products تعریف خدمات در docker-compose.services.yml به صورت زیر فایل کنید

products:
  extends:
    file: products/docker-compose.yml
    service: app
  env_file: .env
  scale: 3    # new option "scale" to tell docker-compose to spawn 3 containers for this service
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

و اکنون، زمانی که خدمات را با استفاده از دستور بالا می آوریم

docker-compose --file docker-compose.services.yml up
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ما گزارش‌هایی را می‌بینیم که نشان می‌دهند 3 ظرف برای سرویس محصولات در حال اجرا هستند.

گزارش‌هایی که چندین کانتینر را هنگام راه‌اندازی نشان می‌دهند

عالی!! ما در حال حاضر در نیمه راه وجود دارد.

پیاده سازی Load Balancing

به یاد داشته باشید زمانی که من در مورد تعریف گروه های سرور در آن صحبت کردم nginx.conf فایل. خب، تا اینجا ما فقط یک سرور در گروه داشتیم، بنابراین گروه نامیدن آن چندان منطقی نبود.

اما اکنون که چندین کانتینر در حال اجرا داریم، به عبارت دیگر، چندین سرور در حال اجرا هستیم، می‌توانیم از گروه سرور به طور کامل استفاده کنیم.

upstream products {
  server microservices-shop_products_1:4000;
  server microservices-shop_products_2:4000;
  server microservices-shop_products_3:4000;
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این به همان سادگی است! ما به تعادل بار در میان 3 کانتینر خدمات محصول خود دست یافته ایم.

و، ما گزارش هایی برای تأیید آن داریم

سیاههها که تعادل بار را در عمل نشان می دهد

این گزارش‌ها ☝️ زمانی ایجاد می‌شوند که چندین درخواست را برای هر کدام ارسال کنیم /products نقطه پایانی

از آنجایی که ما فقط نام سرورها (نام کانتینرها و شماره پورت ها) را مشخص کرده ایم، الگوریتم پیش فرض مورد استفاده توسط Nginx یک الگوریتم Round Robin است.

در اینجا می توانید در مورد الگوریتم های پشتیبانی شده بیشتر بخوانید.


می خواهم بیشتر ببینم

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


بسته شدن

امیدوارم از این سریال لذت برده باشید و چیزهای جدیدی یاد گرفته باشید.

با خیال راحت هر سوالی دارید در نظرات زیر مطرح کنید.

به سلامتی!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا