Masoud Najafi
Masoud Najafi
خواندن ۲ دقیقه·۲ سال پیش

Spring cloud و eureka

دنیای Spring cloud
دنیای Spring cloud



این روزها,تو دنیا برنامه نویسی و معماری نرم افزار خیلی راجع به ماکروسرویس ها صحبت میشه.انواع موضوعاتی که داخل این معماری وجود داره مثل نحوه برقراری ارتباط بین ماکروها,چالش هایی که این بین بوجود میاد و ...
بافرض این موضوع که در حال حاضر دغدغه بار زیاد و اینکه چطوری این موضوع رو هندل کنیم,میخوایم یه مقداری روی راه حلی که spring cloud بهش رسیده صحبت کنیم.

اگر با موضوع Service Registry آشنا هستید که این قسمت رو اسکیپ(فرار :D) کنید.
قلب الگوی Service Discovery، دیتابیس آدرس‌ها یا Service Registry است. Service Registry دیتابیسی است که آدرس دقیق هر نمونه از سرویس‌ها را نگهداری می‌کند. با توجه به نقش مهم این بخش، Service Registry باید همیشه در دسترس باشد و همیشه به روز باشد.(رفرنس: قسمت پنجم ماکروسرویس ها : آشنایی با Service Discovery علیرضا ارومند)



واما بعد...

خلاصه ترین توضیحی که برای استفاده از این سیستم میشه گفت به این صورت هست:

سه قسمت داریم:
۱-سرویس گیرنده(کلاینت)

۲- سیستم Service Registry(که تمام سرویس ها در اون ثبت میشن)

۳-سرویس دهنده


نحوه برقراری ارتباط به این صورت هست که سرویس دهنده ها اطلاعات خودشون رو در سرویس رجیستری قرار میدهند و کلاینت ها برای برقراری ارتباط به سرویس رجیستری درخواست میدهند.
اما چرا باید سرویس رجیستری وسط باشه؟
معمولا بعد از یه مدتی بنا به دلایل مختلفی,ازجمله بار زیاد رو سیستم,ما مجبور هستیم از هر ماکرو چند نمونه بالا بیاریم
حالا تصور کنید ما از یه سیستم مثلا 10تا نمونه بالا داریم که رو پورت های مختلف هم بالا اومدن
چطوری میخوایم درخواست ها رو به نمونه های جدید روت کنیم؟
منطقی هست که هردفعه به کلاینت ها آی پی و پورت جدید بدیم؟

اینجاست که مزایای سرویس رجیستری به کار میاد
زمانی که کلاینت به سرویس رجیستری وصل بشه,درواقع فقط با یه نام که از سرویس مقصد میدونه ارتباط برقرار میکنه

اینطور تصور کنید که ماکرو Order میخواد به ماکرو Product درخواست بده
نام ماکرو Product در سرویس رجیتسری product هست.اما امکان داره 10تا نمونه از این product بالا باشه

حالا کلاینت که فقط یه اسم رو میشناسه,به سرویس رجیستری درخواست میده و این سرویس رجیستری هست که تصمیم میگیره به هرکدوم از نمونه هایی که از product که بالا هست درخواست رو روت کنه

سعی کردم خیلی خلاصه هدف از این سیستم رو تو چند خط توضیح بدم

آدرس لینکدین من:

https://www.linkedin.com/in/masoud-najafi-b572168b/

springeurekamicroservice
شاید از این پست‌ها خوشتان بیاید