نحوه ساخت میکروسرویس با 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 است.
در اینجا می توانید در مورد الگوریتم های پشتیبانی شده بیشتر بخوانید.
می خواهم بیشتر ببینم
همچنین، اگر پیشنهاد، بهبود یا چیز دیگری به طور کلی دارید که دوست دارید در این مجموعه ببینید، لطفاً نظر خود را درج کنید. من تمام تلاشم را می کنم تا آن را در اینجا قرار دهم.
بسته شدن
امیدوارم از این سریال لذت برده باشید و چیزهای جدیدی یاد گرفته باشید.
با خیال راحت هر سوالی دارید در نظرات زیر مطرح کنید.
به سلامتی!