Update: 2026-07-23 02:19:01

This commit is contained in:
Hamza-Ayed
2026-07-23 02:19:01 +03:00
parent e5bf70fddb
commit 1cef598fc5
@@ -39,7 +39,72 @@
--- ---
## 2. 📐 التوسع الأفقي وفصل السيرفرات (Horizontal Scaling & Architecture Decoupling) ## 2. 📐 المعمارية الرسمية للنظام (System Architecture & Mermaid Diagram)
يتكون نظام سيرو الحالي من بنية متكاملة عالية الأداء تعيش على سيرفر فيزيائي موحد، ومقسمة إلى حاويات دكر متخصصة مترابطة عبر شبكة دكر الداخلية:
```mermaid
graph TD
subgraph Clients["📱 تطبيقات الهواتف المحمولة (Clients)"]
RiderApp["تطبيق الراكب (Rider App)"]
DriverApp["تطبيق السائق (Driver App)"]
end
subgraph Server["🖥️ السيرفر الموحد (Docker Compose Infrastructure - siro)"]
subgraph NginxEntry["🌐 بوابة Nginx المركزية (Port 80 / 8080)"]
Nginx["Nginx Reverse Proxy"]
end
subgraph FPMContainer["⚡ حاوية المعالجة الرئيسية (PHP-FPM: php:9000)"]
BackendAPI["الباك إند الرئيسي (/var/www/backend)"]
PaymentAPI["سيرفر المدفوعات (/var/www/v2)"]
LocationAPI["سيرفر المواقع (/var/www/loction_server)"]
end
subgraph SocketDriver["🔌 حاوية سوكيت السائقين (socket_driver)"]
DriverWS["Workerman WS Server (Port 2020)"]
DriverInternalHTTP["مستقبل الإشعارات الداخلي (Port 2021)"]
end
subgraph SocketPassenger["🔌 حاوية سوكيت الركاب (socket_passenger)"]
PassengerWS["Workerman WS Server (Port 3030)"]
PassengerInternalHTTP["مستقبل الإشعارات الداخلي (Port 3031)"]
end
subgraph DataStorage["💾 قواعد البيانات والكاش المحلي"]
MySQL[("MySQL 8.4 Database")]
Redis[("Redis 7.2 GEO & Pub/Sub")]
end
end
%% اتصالات العملاء
RiderApp -- "HTTPS REST API" --> Nginx
DriverApp -- "HTTPS REST API" --> Nginx
DriverApp -- "WebSocket (Port 2020)" --> DriverWS
RiderApp -- "WebSocket (Port 3030)" --> PassengerWS
%% توجيه Nginx الداخلي (FastCGI)
Nginx -- "FastCGI /backend/..." --> BackendAPI
Nginx -- "FastCGI /v2/main/..." --> PaymentAPI
Nginx -- "FastCGI /loction_server/..." --> LocationAPI
%% الاتصالات الداخلية السريعة (Server-to-Server)
BackendAPI -- "cURL (http://nginx/v2/main/...)" --> PaymentAPI
BackendAPI -- "cURL (http://nginx/loction_server/driver_socket.php)" --> DriverInternalHTTP
LocationAPI -- "cURL (http://nginx/loction_server/passenger_socket.php)" --> PassengerInternalHTTP
%% قواعد البيانات والـ Redis
BackendAPI --> MySQL
PaymentAPI --> MySQL
BackendAPI --> Redis
LocationAPI --> Redis
DriverWS --> Redis
PassengerWS --> Redis
```
---
### أ. التوسع الأفقي وفصل السيرفرات عند الحاجة (Horizontal Scaling)
عند الحاجة للتوسع الضخم (أكثر من 50,000 رحلة في الساعة)، تم تصميم نظام سيرو ليدعم الفصل الفوري إلى **سيرفرين أو أكثر** عبر حاويات الدوكر المستقلة: عند الحاجة للتوسع الضخم (أكثر من 50,000 رحلة في الساعة)، تم تصميم نظام سيرو ليدعم الفصل الفوري إلى **سيرفرين أو أكثر** عبر حاويات الدوكر المستقلة: