swoole简单应用,加速框架

swoole 是一个使用 C++ 语言编写的基于异步事件驱动和协程的并行网络通信引擎,为 PHP 提供协程、高性能网络编程支持。

优势

  • 常驻内存,避免重复加载带来性能损耗
  • 协程异步,提高对 I/O 密集型场景并发处理能力(支付、登录等)
  • 提高对 I/O 密集型场景并发处理能力(如:微信开发、支付、登录等)

首先你需要先安装swoole
第一种方式
下载swoole

找到安装包 进行解压

tar –zxvf swoole-4.6.6.tar

第二种方式
有docker的话 先把压缩包解压,然后将安装包复制到php扩展文件夹里

docker cp swoole-4.6.6 php:/usr/src/php/ext/swoole

进入php容器

docker exec -it php bash
docker-php-ext-install swoole

swoole简单应用,加速框架_第1张图片
安装完成,为了确认一下是否安装好

php -m
或者
php --ri swoole

看到有swoole了

我环境已经有laravel框架了
swoole简单应用,加速框架_第2张图片
现在首页耗时390ms
设置响应头
header请求类型


//实例化一个swoole的http服务类,并传递监听的端口以及host
$http = new swoole\Http\Server('0.0.0.0', 9501);
//监听一个onRequest 事件,当有新的http请求进入就会触发此事件
//两个参数,一个是$request对象,包含了请求的相关信息 GET/POST请求的数据
//第二个参数是response对象,对request的响应可以通过操作response对象来完成。
$http->on('Request', function ($request, $response) {
     
	//$response->header()表示 设置响应数据类型
    $response->header('Content-Type', 'text/html; charset=utf-8');
    //$response->end()方法表示输出一段html内容来结束此请求
    $response->end('

Hello Swoole' . rand(1, 9999) ); }); $http->start(); ?>

ps:0.0.0.0 表示监听所有 IP 地址,一台服务器可能同时有多个 IP,如 127.0.0.1 本地回环 IP、192.168.1.2 局域网 IP、210.127.10.1 外网 IP,这里也可以单独指定监听一个 IP
9501 监听的端口,如果被占用程序会抛出致命错误,中断执行。

swoole 加速php-fpm 原理(获取其他框架)
swoole是完全的长驻内存的,长驻内存一个最大的好处就是可以性能加速。在fpm模式下,我们处理一个请求,通常会有一些空消耗,比如框架共用文件加载,配置文件加载,那么在swoole中,可以在onworkerstart的时候提前一次性把一些必要的文件和配置加载好,不必每次receive重复加载一遍,这样能提升不小的性能。

未完待续

你可能感兴趣的:(php,swoole)