# 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://box.kancloud.cn/bda3f84457ab4d232bd7680e5c120e16_1015x428.png)
## 技术选型其他因素
- 适合团队/公司的技术栈(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 附录