برنامه نویسی

ایجاد میکروسروس های مقیاس پذیر با Apache Kafka ، Django ، Docker و Keycloak ،

## نمودار معماری:

شرح تصویر

توسط نفرین های نجیب در یک مهندس مرد – Deops


مقدمه

معماری میکروسرویس به رویکرد ساخت و ساز تبدیل شده است مقیاس پذیر ، انعطاف پذیر و قابل حفظ برنامه ها در این مقاله ، شما را از طریق نحوه طراحی و پیاده سازی سیستم میکروسرویس با استفاده از:

  • کلیشه برای احراز هویت
  • آپاچی کافکا به عنوان اتوبوس پیام
  • دژنگو برای خدمات پس زمینه
  • واکنش نشان دادن برای جبهه
  • اسکله برای کانتینر کردن همه چیز و اجرای آن در محلی

سیستم از آن تشکیل شده است چهار سرویس دهنده:

  1. مدیریت کاربر – تأیید اعتبار و پروفایل کاربر
  2. انتصاب – برنامه ریزی قرار ملاقات را مدیریت می کند
  3. تبعیض – داده های استفاده از سیستم را جمع آوری می کند
  4. اعلان – اعلان ها را بر اساس وقایع ارسال می کند

چرا میکروسرویس؟

برنامه های یکپارچه سنتی اغلب با مقیاس پذیری و قابلیت حفظ می جنگند. از طرف دیگر میکروسرویس ارائه می دهد:

  • مقیاس پذیری – خدمات مستقل می توانند به طور جداگانه مقیاس کنند.
  • وابسته به – عدم موفقیت در یک سرویس کل سیستم را کاهش نمی دهد.
  • انعطاف پذیری – خدمات می توانند به طور مستقل تدوین ، مستقر و نگهداری شوند.

پشته فناوری

  • دژنگو – چارچوب باطن برای هر میکروسرویس
  • واکنش نشان دادن – برنامه Frontend
  • کلیشه – احراز هویت و مجوز متمرکز
  • آپاچی کافکا -کارگزار پیام برای ارتباطات رویداد محور
  • پس از – پایگاه داده اصلی
  • اسکله – هر خدمتی ، از جمله KeyCloak ، Kafka و جلوی آن ، کانتینر می شود

خرابی میکروسرویس

1. مدیریت مدیریت کاربر

  • پروفایل های کاربر و احراز هویت را کنترل می کند
  • از KeyCloak برای صدور نشانه های JWT استفاده می کند

ترتیب میکروسرویس قرار ملاقات

  • قرار ملاقات های کاربر را مدیریت می کند
  • منتشر کردن appointment-events وقتی قرار ملاقات ایجاد می شود

3. تجزیه و تحلیل میکروسرویس

  • داده های استفاده در سطح سیستم را جمع آوری می کند
  • مصرف کردن appointment-events از کافکا
  • داده های جمع شده را برای گزارش دهی ذخیره می کند

4. اعلان میکروسرویس

  • گوش می دهد برای appointment-events
  • ایمیل را برای کاربران ارسال می کند

ارتباطات محور با کافکا

کافکا امکان پذیر است ارتباطات ناهمزمان بین خدمات معماری دنبال می کند تولید کننده الگوی:

  • تولید کننده – هر میکروسرویس رویدادهای دامنه را منتشر می کند.
  • مصرف کننده – سایر خدمات به این رویدادها گوش می دهند.
  • موضوعات موضوعاتی – سازماندهی جریان های رویداد ( appointment-events،).

مثال: جریان رویداد ایجاد قرار ملاقات

  1. یک کاربر در یک قرار ملاقات از طریق انتصاب میکروسرویس
  2. در انتصاب سرویس منتشر می کند appointment.created رویداد به کافکا.
  3. در تبعیض سرویس به این رویداد گوش می دهد و قرار ملاقات جدید را برای گزارش ثبت می کند.
  4. در اعلان سرویس به همان رویداد گوش می دهد و یک ایمیل تأیید ارسال می کند.

احراز هویت با Keycloak

KeyCloak فراهم می کند:

  • مدیریت کاربر -خود ثبت نام ، ورود اجتماعی ، بازنشانی رمز عبور
  • کنترل دسترسی مبتنی بر نقش (RBAC) – خدمات مجوز را بر اساس نقش کاربر اجرا می کنند
  • احراز هویت مبتنی بر توکن – نشانه های JWT برای ارتباطات امن API

هر میکروسرویس نشانه های JWT را تأیید می کند قبل از پردازش درخواست های دریافتی.


اجرای سیستم به صورت محلی

1. مخزن را کلون کنید

پروژه کامل در GitHub موجود است. آن را با استفاده از:

git clone https://github.com/Mutuwa99/microservice-kafka.git
cd microservice-kafka
حالت تمام صفحه را وارد کنید

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

2. Keycloak را اجرا کنید

حرکت به stack/ دایرکتوری و شروع KeyCloak با استفاده از:

cd stack
docker-compose -f keycloak-docker-compose.yml up -d
حالت تمام صفحه را وارد کنید

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

  • به LocalHost بروید: 7080/
  • برای ورود به سیستم از “مدیر” به عنوان نام کاربری و passowrd استفاده کنید
  • قلمرو به نام “myRealm” ایجاد کنید و آن را فعال کنید
  • به “myRealm” بروید و روی مشتری ها کلیک کنید و ایجاد کنید
  • شناسه مشتری و نام را به عنوان “مدیریت کاربر” پر کنید
  • احراز هویت و مجوز مشتری را در ON تنظیم کنید
  • شناسه مشتری و نام را برای استفاده در آینده در میکروسرویس کپی کنید

3. Apache kafka را اجرا کنید

هنوز در stack/ دایرکتوری ، کافکا را با اجرا شروع کنید:

docker-compose -f kafka-docker-compose.yml up -d
حالت تمام صفحه را وارد کنید

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

  • به LocalHost بروید: 8080/ برای دیدن سایت Kafka

4. تمام خدمات میکروسرویس را اجرا کنید

NB: قبل از اجرای این کار اطمینان حاصل کنید:

  • شما به سرویس اعلان حرکت می کنید و جایگزین می کنید:
EMAIL_HOST_USER = ''  # Replace with your Gmail address
EMAIL_HOST_PASSWORD = ''  # Replace with the app password you generated
حالت تمام صفحه را وارد کنید

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

  • به تمام پوشه های MicroService بروید ، تنظیمات خود را باز کنید.

برای شروع همه خدمات ، اجرا کنید:

docker-compose -f services-docker-compose.yml up -d
حالت تمام صفحه را وارد کنید

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

سرویس Django با پس زمینه ما روی این URL ها اجرا می شود:

  • مدیریت Usermange: localhost:8000/admin/

  • سرویس انتصاب: localhost:10000/admin/

  • سرویس اطلاع رسانی: localhost:9000/admin/

  • سرویس تحلیلی: localhost:8001/admin/

برنامه جلوی ما در حال اجرا است: localhost:3000/

  • با کاربری که در KeyCloak ایجاد کرده اید وارد شوید

پایان

ایجاد میکروسرویس با جنگو ، کیکلواک و کافکا یک راه حل مقیاس پذیر و قابل نگهداری ارائه می دهد. با استفاده از اسکله برای کانتینر کردن همه چیز ، می توانید کل سیستم را به صورت محلی با سهولت اجرا کنید.

نظر شما در مورد میکروسرویس چیست؟ آیا از Django ، Keycloak یا Kafka در پشته خود استفاده کرده اید؟ بیایید در نظرات بحث کنیم! 🚀


این نسخه شامل مرجع مخزن GitHub و دستورات دقیق برای شروع هر مؤلفه است. اگر می خواهید تغییر دیگری داشته باشید به من اطلاع دهید! 🚀🔥

نظر شما در مورد میکروسرویس چیست؟ آیا از Django ، Keycloak یا Kafka در پشته خود استفاده کرده اید؟ بیایید در نظرات بحث کنیم! 🚀


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

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

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

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