swoole模式部署
目前国内有一股"高性能PHP要上swoole"的风潮,说起高性能的swoole,大家都说是因为他是"C扩展"的,是"协程的",所以性能是高的.这种说法没什么问题,关于swoole的测评和教程也很多,开发生态也跟上了,这篇文章不多介绍,这里说PHP是想说,其实性能提升一个关键因素的并非`C扩展`或`协程`,而是开发模式由`PHP-FPM`变为了`PHP-CLI`,你会发现很多命令行的框架都生成有很高的性能.
webman
以下介绍摘自webman文档.
- webman是什么
webman是一款基于workerman开发的高性能HTTP服务框架。webman用于替代传统的php-fpm架构,提供超高性能可扩展的HTTP服务。你可以用webman开发网站,也可以开发HTTP接口或者微服务。
除此之外,webman还支持自定义进程,可以做workerman能做的任何事情,例如websocket服务、物联网、游戏、TCP服务、UDP服务、unix socket服务等等。
- webman理念
以最小内核提供最大的扩展性与最强的性能。
webman仅提供最核心的功能(路由、中间件、session、自定义进程接口)。其余功能全部复用composer生态,这意味着你可以在webman里使用最熟悉的功能组件,例如在数据库方面开发者可以选择使用Laravel的illuminate/database
,也可以是ThinkPHP的ThinkORM
,还可以是其它组件如Medoo
。在webman里集成他们是非常容易的事情。
- webman具有以下特点
1、高稳定性。webman基于workerman开发,workerman一直是业界bug极少的高稳定性socket框架。
2、超高性能。借助于workerman高性能以及对HTTP服务深入优化,webman性能高于传统php-fpm框架10-100倍左右,同时也远高于其它同类型常驻内存的web框架。
3、高复用。无需修改,可以复用绝大部分composer组件及类库。
4、高扩展性。支持自定义进程,可以做workerman能做的任何事情。
5、超级简单易用,学习成本极低,代码书写与传统框架没有区别。
6、使用最为宽松友好的MIT开源协议。
PHP-PM
是的,你没看错这个名字,不是php-fpm,而是PHP-PM,这是一个基于`react-php`的项目,与webman和众多swoole的框架不同,php-pm是一个`容器`.
对webman和swoole的一些框架来说,你需要基于它的框架来开发,比如是MVC的或其他的模式,这些框架跟ThinkPHP/Yii/Laravel是一个级别的,当然大部分这些框架有精简的.
PHP-PM可以看做一个php版的tomcat,目前内置支持Symfony/Laravel,但是凡是基于request-response 的框架都可以使用.
ReactPHP
这个框架跟workerman/swoole是一个级别的,可以很简单的运行一个高效的服务器,
$http = new React\Http\HttpServer(function (Psr\Http\Message\ServerRequestInterface $request) {
return React\Http\Message\Response::plaintext(
"Hello World!\n"
);
});
$socket = new React\Socket\SocketServer('127.0.0.1:8080');
$http->listen($socket);
echo "Server running at http://127.0.0.1:8080" . PHP_EOL;
其实还有workerman和swoole本身,但是国内热度很高,就不多介绍了.单我写这篇文章,主要还是想介绍下面这个.
PHP-FPM
是的就是`传统`的PHP-FPM,我想说的是PHP-FPM并没有那么不堪,使用PHP8.1+jit+opcache,性能也会提高很多.
其实现在主流的框架使用composer加载依赖,动辄几千几万各文件需要加载,所以使用PHP-FPM感觉性能很差,其实主要浪费在加载文件上了.安装了opcache,性能会立马提高.
- 较高的性能,不要小瞧了opcache
- 无差别的开发,快速开发迭代,不需要适应各类框架
- 稳定的运行,FPM稳如老狗
基于这三点,PHP-FPM仍然应该当是最推荐的用法.
原文标题:一些PHP的高性能的解决方案
原文地址:https://phpreturn.com/index/a621991c5b9431.html
原文平台:PHP武器库
版权声明:本文由phpreturn.com(PHP武器库官网)原创和首发,所有权利归phpreturn(PHP武器库)所有,本站允许任何形式的转载/引用文章,但必须同时注明出处。