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

## نمودار معماری:
توسط نفرین های نجیب در یک مهندس مرد – Deops
مقدمه
معماری میکروسرویس به رویکرد ساخت و ساز تبدیل شده است مقیاس پذیر ، انعطاف پذیر و قابل حفظ برنامه ها در این مقاله ، شما را از طریق نحوه طراحی و پیاده سازی سیستم میکروسرویس با استفاده از:
- کلیشه برای احراز هویت
- آپاچی کافکا به عنوان اتوبوس پیام
- دژنگو برای خدمات پس زمینه
- واکنش نشان دادن برای جبهه
- اسکله برای کانتینر کردن همه چیز و اجرای آن در محلی
سیستم از آن تشکیل شده است چهار سرویس دهنده:
- مدیریت کاربر – تأیید اعتبار و پروفایل کاربر
- انتصاب – برنامه ریزی قرار ملاقات را مدیریت می کند
- تبعیض – داده های استفاده از سیستم را جمع آوری می کند
- اعلان – اعلان ها را بر اساس وقایع ارسال می کند
چرا میکروسرویس؟
برنامه های یکپارچه سنتی اغلب با مقیاس پذیری و قابلیت حفظ می جنگند. از طرف دیگر میکروسرویس ارائه می دهد:
- مقیاس پذیری – خدمات مستقل می توانند به طور جداگانه مقیاس کنند.
- وابسته به – عدم موفقیت در یک سرویس کل سیستم را کاهش نمی دهد.
- انعطاف پذیری – خدمات می توانند به طور مستقل تدوین ، مستقر و نگهداری شوند.
پشته فناوری
- دژنگو – چارچوب باطن برای هر میکروسرویس
- واکنش نشان دادن – برنامه Frontend
- کلیشه – احراز هویت و مجوز متمرکز
- آپاچی کافکا -کارگزار پیام برای ارتباطات رویداد محور
- پس از – پایگاه داده اصلی
- اسکله – هر خدمتی ، از جمله KeyCloak ، Kafka و جلوی آن ، کانتینر می شود
خرابی میکروسرویس
1. مدیریت مدیریت کاربر
- پروفایل های کاربر و احراز هویت را کنترل می کند
- از KeyCloak برای صدور نشانه های JWT استفاده می کند
ترتیب میکروسرویس قرار ملاقات
- قرار ملاقات های کاربر را مدیریت می کند
- منتشر کردن
appointment-events
وقتی قرار ملاقات ایجاد می شود
3. تجزیه و تحلیل میکروسرویس
- داده های استفاده در سطح سیستم را جمع آوری می کند
- مصرف کردن
appointment-events
از کافکا - داده های جمع شده را برای گزارش دهی ذخیره می کند
4. اعلان میکروسرویس
- گوش می دهد برای
appointment-events
- ایمیل را برای کاربران ارسال می کند
ارتباطات محور با کافکا
کافکا امکان پذیر است ارتباطات ناهمزمان بین خدمات معماری دنبال می کند تولید کننده الگوی:
- تولید کننده – هر میکروسرویس رویدادهای دامنه را منتشر می کند.
- مصرف کننده – سایر خدمات به این رویدادها گوش می دهند.
-
موضوعات موضوعاتی – سازماندهی جریان های رویداد (
appointment-events
،).
مثال: جریان رویداد ایجاد قرار ملاقات
- یک کاربر در یک قرار ملاقات از طریق انتصاب میکروسرویس
- در انتصاب سرویس منتشر می کند
appointment.created
رویداد به کافکا. - در تبعیض سرویس به این رویداد گوش می دهد و قرار ملاقات جدید را برای گزارش ثبت می کند.
- در اعلان سرویس به همان رویداد گوش می دهد و یک ایمیل تأیید ارسال می کند.
احراز هویت با 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 در پشته خود استفاده کرده اید؟ بیایید در نظرات بحث کنیم! 🚀