[分享會] 微服務框架設計 (基於Swoole)


框架三要素
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  事件調度組件
 
其余
服務監控統計
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM