الوحدة 14: تقنيات Spring Boot المتقدمة
أهداف الوحدة
في نهاية هذه الوحدة، ستكون قادرًا على:
- فهم البرمجة التفاعلية مع Spring WebFlux
- تنفيذ نظام التخزين المؤقت باستخدام Redis
- تكوين المراسلة غير المتزامنة مع RabbitMQ
- إنشاء مهام مجدولة باستخدام @Scheduled
- تطوير تطبيقات الوقت الحقيقي باستخدام WebSockets
المتطلبات الأساسية
قبل البدء في هذه الوحدة، تأكد من إتقانك لـ:
- الوحدات 1-12: أساسيات Spring Boot الكاملة
- الوحدة 13: هندسة الخدمات المصغرة
- Docker (لـ Redis، RabbitMQ)
- مفاهيم البرمجة غير المتزامنة
خطة الوحدة
الفصول النظرية
| # | الفصل | المدة | الوصف |
|---|---|---|---|
| 1 | البرمجة التفاعلية | 1h30 | WebFlux، Mono، Flux، R2DBC |
| 2 | التخزين المؤقت باستخدام Redis | 1h | @Cacheable, @CacheEvict، Redis |
| 3 | المراسلة غير المتزامنة | 1h15 | RabbitMQ، Spring AMQP |
| 4 | المهام المجدولة | 45min | @Scheduled, @Async، Cron |
| 5 | WebSockets | 1h | STOMP، SockJS، الوقت الحقيقي |
الأعمال التطبيقية
| # | العمل التطبيقي | المدة | الوصف |
|---|---|---|---|
| 1 | تخزين مؤقت باستخدام Redis | 1h | تخزين مؤقت لواجهة برمجة التطبيقات |
| 2 | المراسلة باستخدام RabbitMQ | 1h30 | نظام الإشعارات |
| 3 | دردشة WebSocket | 1h30 | تطبيق دردشة الوقت الحقيقي |
| 4 | المهام المجدولة | 45min | دفعات وتقارير تلقائية |
المدة الإجمالية المقدرة: 10 ساعات
المفاهيم الأساسية
البرمجة التفاعلية مقابل البرمجة الإمبراطورية
إمبراطورية (Spring MVC):
- خيط لكل طلب
- حجب
- سهل الفهم
- محدود في القابلية للتوسع
تفاعلية (WebFlux):
- حلقة الأحداث
- غير حجب
- قابلية توسع عالية
- منحنى تعلم
متى تستخدم ماذا
| حالة الاستخدام | التقنية |
|---|---|
| API CRUD الكلاسيكية | Spring MVC |
| التنافسية العالية | WebFlux |
| البيانات المقروءة بشكل متكرر | Cache Redis |
| فك ارتباط الخدمات | RabbitMQ |
| إشعارات الوقت الحقيقي | WebSocket |
| التقارير الدورية | @Scheduled |
المكدس التقني
| التقنية | الإصدار | الاستخدام |
|---|---|---|
| Spring WebFlux | 3.2.x | البرمجة التفاعلية |
| Project Reactor | 3.6.x | Mono/Flux |
| Redis | 7.x | التخزين المؤقت الموزع |
| RabbitMQ | 3.12.x | وسيط الرسائل |
| STOMP | 1.2 | مراسلة WebSocket |
هيكلية الأعمال التطبيقية
تطبيق متقدم
├── API REST (Spring MVC أو WebFlux)
├── طبقة التخزين المؤقت (Redis)
├── المراسلة (RabbitMQ)
├── WebSocket (STOMP)
└── المهام المجدولة
جاهز للبدء
تأكد من تثبيت Docker لهذه الوحدة:
# التحقق من Docker
docker --version
# بدء Redis
docker run -d --name redis -p 6379:6379 redis:7-alpine
# بدء RabbitMQ
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
ابدأ الفصل 1: البرمجة التفاعلية