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 رحلة في الساعة)، تم تصميم نظام سيرو ليدعم الفصل الفوري إلى **سيرفرين أو أكثر** عبر حاويات الدوكر المستقلة:
|
عند الحاجة للتوسع الضخم (أكثر من 50,000 رحلة في الساعة)، تم تصميم نظام سيرو ليدعم الفصل الفوري إلى **سيرفرين أو أكثر** عبر حاويات الدوكر المستقلة:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user