# 1.1 传统php-fpm工作模式的问题
## php-fpm
- Fastcgi进程管理器,实现fastcgi协议
- 同步阻塞IO进程模型
- 请求结束后释放所有资源和内存
- 并发受限于进程数
- PHP框架初始化占用大量的计算资源
## php-fpm工作模式的问题
![php-fpm工作模式](https://box.kancloud.cn/3b817cd78cddf3adb50129d98a36663f_682x311.png)
- nginx基于epoll事件模型,一个worker同时可处理多个请求
- fpm-worker在同一时刻可处理一个请求
- master进程只负责处理worker进程的监控、日志等
- 用户端请求由elb解析,再经过nginx解析
- fpm-worker每次处理请求前需要重新初始化mvc框架,然后再释放资源
- 高并发请求时,fpm-worker不够用,nginx直接响应502
- fpm-worker进程间切换消耗大(如某线上业务在4核8G内存服务器实质可利用16个进程)
- 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 附录