Update: 2026-07-23 02:19:01
This commit is contained in:
@@ -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 رحلة في الساعة)، تم تصميم نظام سيرو ليدعم الفصل الفوري إلى **سيرفرين أو أكثر** عبر حاويات الدوكر المستقلة:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user