框架三要素
1. Service 通訊
2. 服務管理
3. 開發組件
爲何須要服務
1.自治性
2.可組合
3.異構性
2.彈性擴展
-實現方式-
共享庫
1.二進制文件/Composer包
2.優勢:實現簡單、使用方便
3.缺點:隔離性差、部署升級麻煩
REST
1.解決了隔離性和部署問題
2.優勢:簡單通用
3.缺點:HTTP 不支持主動推送、TCP開銷多、長鏈接相關支持差
-服務設計-
TCP Server/Client
1.服務名+接口名+參數+環境信息
2.服務提供方(接收 socket 消息,執行方法,發送數據)
3.服務調用方(鏈接服務,指定格式向服務髮網絡請求,接收數據)
數據封包、解包由 Swoole 根據配置在底層解析,應用獲取完整數據。
-服務治理-
數據中心
1.Consul agent 集羣
2.支持 DNS 和 HTTP API 動態配置管理
服務發現/負載均衡/心跳檢測
1.服務啓動時(onStart)註冊到 Consul
2.服務中止時(onShutdown)從 consul 清除
3.數據中心收到配置變動推送到調用方
4.客戶端實現輪詢負載均衡機制
5.心跳檢測進程檢測服務狀態,動態上下線
進程調度
1.Supervisor 自啓動 Service 進程
2.斷電重啓
開發組件
swlib/swpod Swoole協程PDO組件
symfony/console 可編程命令行組件
symfony/routing 路由組件
symfony/dotenv 配置解析組件
symfony/event-dispatcher 事件調度組件
其他
服務監控統計