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

在这里插入图片描述
安装完成,为了确认一下是否安装好

php -m
或者
php --ri swoole

看到有swoole了

我环境已经有laravel框架了
在这里插入图片描述
现在首页耗时390ms
设置响应头
header请求类型

<?php
//实例化一个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('<h1>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重复加载一遍,这样能提升不小的性能。

laravel使用swoole的组件(laravels扩展包)
首先要有composer,有composer首先要有php那就先下载php吧
移除之前的php版本

yum -y remove php*

这篇文章安装php

安装composer 继续

curl -sS https://getcomposer.org/installer | php
# 把composer.phar移动到环境下让其变成可执行
mv composer.phar /usr/local/bin/composer
# 测试
composer -V

在这里插入图片描述
可以了 ,可以安装laravels了,进入laravel目录

composer require hhxsv5/laravel-s
php artisan laravels publish

该命令会发布配置文件 laravels.php 到 config 目录下,以及脚本文件到 bin 目录下

yum install supervisor

在这里插入图片描述

cd /etc/supervisord.d/
vi laravel-s.ini

根据自己目录添加

[program:laravel-s-test]
command=php /www/blog/bin/laravels start -i
numprocs=1
autostart=true
autorestart=true
startretries=3
user=root
redirect_stderr=true
stdout_logfile=/www/blog/storage/logs/supervisord-stdout.log

未完待续

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mr.杰瑞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值