كل المشاريع
واجهة خلفية

منصة المؤتمرات — خدمات مصغّرة Spring Cloud

نظام خدمات مصغّرة Spring Cloud كامل للمؤتمرات والكلمات الرئيسية: Config Server، اكتشاف Eureka، بوابة API، خادما موارد JWT مؤمَّنان بـ Keycloak (OAuth2/OIDC)، استدعاءات بين الخدمات عبر OpenFeign مع تمرير الرمز، وعميل Angular.

5
Microservices
Eureka
Discovery
Keycloak JWT
Auth
Angular
Frontend
المنهجية

نمط Config Server + Eureka + Gateway، كل خدمة خادم موارد JWT، Feign مع تمرير الرمز

المكدس التقني
Java 17Spring Boot 3.4Spring Cloud 2024EurekaSpring Cloud GatewayConfig ServerKeycloakOpenFeignAngularH2
الكلمات المفتاحية
Spring CloudEurekaAPI GatewayKeycloakOAuth2OpenFeignAngularMicroservices
التعمق

نظام موزّع كامل (حلّ امتحان تجريبي SDIA) يدير المؤتمرات والكلمات الرئيسية بكامل حزمة Spring Cloud: إعداد مركزي، اكتشاف الخدمات، توجيه عبر البوابة وأمان OAuth2 من طرف إلى طرف.

البنية

                         ┌──────────────┐
                         │   Keycloak   │  realm: exam-realm
                         │ (OAuth2/OIDC)│
                         └──────┬───────┘
                                │ JWT
        ┌───────────────┐       ▼
        │  واجهة Angular │ ──► Gateway :8888 ──► Eureka :8761 (الاكتشاف)
        └───────────────┘       │                    ▲
                                 ├──► keynote-service :8081
                                 └──► conference-service :8082 ──(OpenFeign)──┐
                                                                              │
                          Config Server :8088  ◄── كل الخدمات                  │
                          keynote-service ◄───────────────────────────────────┘

الخدمات

الخدمةالمنفذالدور
config-service8088خادم إعداد Spring Cloud (مدعوم بـ Git)
discovery-service8761سجل خدمات Eureka
gateway-service8888بوابة API + CORS
keynote-service8081خادم موارد الكلمات (H2)
conference-service8082خادم موارد المؤتمرات (H2)، يستدعي الكلمات عبر Feign

الأمان والمرونة

  • كل خدمة مصغّرة هي خادم موارد JWT؛ JwtAuthConverter يربط أدوار Keycloak ← صلاحيات Spring
  • FeignInterceptor يمرّر رمز Bearer عبر الاستدعاءات بين الخدمات
  • مسار Git للإعداد مُدار بمتغيّر بيئة ← قابل للنقل بين الأجهزة
  • الخدمات الخمس تُترجم وتنجح في الاختبارات دون تشغيل Keycloak