# 2.1 通信框架技術選型
## WorkerMan
### 優勢
- 一個高性能的PHP Socket服務器框架
- 支持TCP/UDP
- 純PHP開發
- 組件豐富
### 劣勢
- PHP的內存管理粒度粗
- PHP無法直接調用操作系統API
## Swoole
### 優勢
- PHP異步、并行、事件驅動高性能網絡通信的 C 擴展
- TCP/UDP/HTTP/WEBSOCKET服務器
- 原生支持異步Redis/MySQL/HttpClient
- 基于epoll的reactor模型
- 穩定
- 社區相當活躍
### 劣勢
- 組件不夠豐富
## 自主開發
### 優勢
- 功能定制(select/poll/epoll/Reactor模型/TCP/IP協議等等)
- 靈活度高
### 劣勢
- 重復造輪子
- 成本高,時間周期長
- 知識儲備不夠
- 缺乏人才
## Go
### 優勢
- 語言級的高性能高并發
- 協程
- 適合底層后端系統的開發
### 劣勢
- 靜態語言,開發效率和PHP相差大
- 儲備的技術勢能不夠
- 不符合現有團隊的基團
- 缺乏人才
## 優序矩陣

## 技術選型其他因素
- 適合團隊/公司的技術棧(PHP)
- 將擅長的技術做到專業領域更深
- 目前后端團隊有PHP內核及擴展開發的經驗
## 技術選型決策
- C擴展+PHP MVC框架
- 支持PHP7以上版本
- Swoole提供低層Tcp/Http通信
- PHP精簡版MVC
- PHP Yield協程調度器
- PHP實現對象池、連接池等特性
- PHP實現RPC Server/Client
- 0 文檔說明
- 1 為什么研發新框架
- 1.1 傳統php-fpm工作模式的問題
- 1.2 壓測數據對比
- 1.3 小結
- 2 微服務框架研發概覽
- 2.1 通信框架技術選型
- 2.2 swoole
- 2.3 協程原理
- 2.4 異步、并發
- 2.5 小結
- 3 框架運行環境
- 3.1 環境變量
- 3.2 運行代碼
- 3.3 docker
- 3.4 小結
- 4 框架結構
- 4.1 結構概述
- 4.2 控制器
- 4.3 模型
- 4.4 視圖
- 4.5 同步任務
- 4.6 配置
- 4.7 路由
- 4.8 小結
- 5 框架組件
- 5.1 協程
- 5.2 類的加載
- 5.3 異步Http Client
- 5.4 請求上下文
- 5.5 連接池
- 5.6 對象池
- 5.7 RPC
- 5.8 公共庫
- 5.9 RESTful
- 5.10 多語言
- 5.11 雜項
- 5.12 小結
- 6 常見問題
- 7 附錄