# 1.1 傳統php-fpm工作模式的問題
## php-fpm
- Fastcgi進程管理器,實現fastcgi協議
- 同步阻塞IO進程模型
- 請求結束后釋放所有資源和內存
- 并發受限于進程數
- PHP框架初始化占用大量的計算資源
## php-fpm工作模式的問題

- 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 附錄