[swoole]安装swoole及入门
文章目录
一.安装swoole及入门
1.安装准备
安装前必须保证系统已经安装了下列软件
- php-7.0 或更高版本
- gcc-4.8 或更高版本
- make
- autoconf
- pcre (CentOS系统可以执行命令:yum install pcre-devel)
- phpize (CentOS系统可以执行命令:yum install php-devel)
2.下载地址
- https://github.com/swoole/swoole-src/releases
- http://pecl.php.net/package/swoole
- http://git.oschina.net/swoole/swoole
3.安装
1).完整编译
|
|
2).PECL
|
|
4.配置php.ini
编译安装成功后,修改php.ini加入
|
|
通过php -m或phpinfo()来查看是否成功加载了swoole.so,如果没有可能是php.ini的路径不对,可以使用php –ini来定位到php.ini的绝对路径。
5.重启php-fpm
|
|
二.swoole入门
1.体验swoole代码
通过体验基础代码,了解swoole的基本运行,有更直观的感受,以下git包含示例运行代码:
https://gitee.com/Kindred_Dy/swoole_php.git
2.swoole运行流程和进程/线程结构图
1).运行流程图
2).进程/线程结构图
A.Swoole是一个多进程模式的框架(可以类比Nginx的进程模型)
- 当启动一个Swoole应用时,一共会创建2 + n + m个进程,其中n为Worker进程数,m为TaskWorker进程数,2为一个Master进程和一个Manager进程
- Master进程为主进程,该进程会创建Manager进程、Reactor线程等工作进/线程
- Reactor线程实际运行epoll实例,用于accept客户端连接以及接收客户端数据
- Manager进程为管理进程,该进程的作用是创建、管理所有的Worker进程和TaskWorker进程
B.Worker进程
1.简介
Worker进程作为Swoole的工作进程,所有的业务逻辑代码均在此进程上运行。当Reactor线程接收到来自客户端的数据后,会将数据打包通过管道发送给某个Worker进程
2.Worker进程生命周期
当一个Worker进程被成功创建后,会调用onWorkerStart回调,随后进入事件循环等待数据。当通过回调函数接收到数据后,开始处理数据。如果处理数据过程中出现严重错误导致进程退出,或者Worker进程处理的总请求数达到指定上限,则Worker进程调用onWorkerStop回调并结束进程。
文章作者 ZhangKQ
上次更新 2022-02-10