2.1 通信框架技术选型
最后更新于:2022-03-31 23:46:52
# 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相差大
- 储备的技术势能不够
- 不符合现有团队的基团
- 缺乏人才
## 优序矩阵
![技术选型的优序矩阵](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/bda3f84457ab4d232bd7680e5c120e16_1015x428.png)
## 技术选型其他因素
- 适合团队/公司的技术栈(PHP)
- 将擅长的技术做到专业领域更深
- 目前后端团队有PHP内核及扩展开发的经验
## 技术选型决策
- C扩展+PHP MVC框架
- 支持PHP7以上版本
- Swoole提供低层Tcp/Http通信
- PHP精简版MVC
- PHP Yield协程调度器
- PHP实现对象池、连接池等特性
- PHP实现RPC Server/Client