广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php-fpm和swoole有什么区别
  • 135
分享到

php-fpm和swoole有什么区别

PHP 2019-08-28 09:08:33 135人浏览 绘本
摘要

本教程操作环境:windows10系统、PHP7.1版、DELL G3电脑php-fpm和swoole有什么区别一.PHP-FPM早期版本的 PHP 并没有内置的 WEB 服务器,而是提供了 Sapi(Server API)给第三方做对接。

教程操作环境:windows10系统、PHP7.1版、DELL G3电脑

php-fpm和swoole有什么区别

一.PHP-FPM

早期版本的 PHP 并没有内置的 WEB 服务器,而是提供了 Sapi(Server API)给第三方做对接。现在非常流行的 php-fpm 就是通过 FastCGI 协议来处理 PHP 与第三方 WEB 服务器之间的通信。

比如 Nginx + php-fpm 的组合,这种方式运行的 fpm 是 Master/Worker 模式,启动一个 Master 进程监听来自 Nginx 的请求,再 fork 多个 Worker 进程处理请求。每个 Worker 进程只能处理一个请求,单一进程的生命周期大体如下:

初始化模块。

初始化请求。此处请求是请求 PHP 执行代码的意思,并非 Http 的请求。

执行 PHP 脚本。

结束请求。

关闭模块。

Swoole 采用的也是 Master/Worker 模式,不同的是 Master 进程有多个 Reactor 线程,Master 只是一个事件发生器,负责监听 Socket 句柄的事件变化。Worker 以多进程的方式运行,接收来自 Reactor 线程的请求,并执行回调函数(PHP 编写的)。启动 Master 进程的流程大致是:

初始化模块。

初始化请求。因为 swoole 需要通过 cli 的方式运行,所以初始化请求时,不会初始化 PHP 的全局变量,如 $_SERVER, $_POST, $_GET 等。

执行 PHP 脚本。包括词法、语法分析,变量、函数、类的初始化等,Master 进入监听状态,并不会结束进程。

Swoole 加速的原理

由 Reactor(epoll 的 io 复用方式)负责监听 Socket 句柄的事件变化,解决高并发问题。

通过内存常驻的方式节省 PHP 代码初始化的时间,在使用笨重的框架时,用 swoole 加速效果是非常明显的。

二.对比不同

PHP-FPM

Master 主进程 / Worker 多进程模式。

启动 Master,通过 FastCGI 协议监听来自 Nginx 传输的请求。

每个 Worker 进程只对应一个连接,用于执行完整的 PHP 代码。

PHP 代码执行完毕,占用的内存会全部销毁,下一次请求需要重新再进行初始化等各种繁琐的操作。

只用于 HTTP Server。

Swoole

Master 主进程(由多个 Reactor 线程组成)/ Worker 多进程(或多线程)模式

启动 Master,初始化 PHP 代码,由 Reactor 监听 Socket 句柄的事件变化。

Reactor 主线程负责子多线程的均衡问题,Manager 进程管理 Worker 多进程,包括 TaskWorker 的进程。

每个 Worker 接受来自 Reactor 的请求,只需要执行回调函数部分的 PHP 代码。

只在 Master 启动时执行一遍 PHP 初始化代码,Master 进入监听状态,并不会结束进程。

不仅可以用于 HTTP Server,还可以建立 tcp 连接、websocket 连接。

--结束END--

本文标题: php-fpm和swoole有什么区别

本文链接: https://www.lsjlt.com/news/1235.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php-fpm和swoole有什么区别
    本教程操作环境:windows10系统、PHP7.1版、DELL G3电脑php-fpm和swoole有什么区别一.PHP-FPM早期版本的 PHP 并没有内置的 WEB 服务器,而是提供了 SAPI(Server API)给第三方做对接。...
    99+
    2019-08-28
    PHP
  • php的fpm和swoole有哪些区别
    本文小编为大家详细介绍“php的fpm和swoole有哪些区别”,内容详细,步骤清晰,细节处理妥当,希望这篇“php的fpm和swoole有哪些区别”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。区别:1、“PHP...
    99+
    2023-06-29
  • swoole和redis有什么区别
    本篇内容主要讲解“swoole和redis有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“swoole和redis有什么区别”吧!区别:1、redis是由“Salvatore Sanfi...
    99+
    2023-06-29
  • workerman和swoole有哪些区别
    这篇文章给大家分享的是有关workerman和swoole有哪些区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。区别:1、swoole是使用C语言实现的socket通信框架,而workerman是使用纯php实...
    99+
    2023-06-29
  • easyswoole和swoole的区别有哪些
    这篇“easyswoole和swoole的区别有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“easyswoole和sw...
    99+
    2023-07-05
  • go语言和swoole有哪些区别
    这篇“go语言和swoole有哪些区别”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“go语言和swoole有哪些区别”文章吧...
    99+
    2023-06-29
  • javascript和php有什么区别
    javascript和php有什么区别?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。javascript与php的区别服务器与客户端JavaScript脚本语言是一种前端语...
    99+
    2023-06-14
  • php和it有什么区别
    本文操作环境:Windows7系统,PHP7.1版,Dell G3电脑。php和it有什么区别一:PHP (计算机编程语言)PHP(PHP: Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤...
    99+
    2016-12-13
    php it
  • php和web有什么区别
    本文操作环境:Windows7系统,PHP7.1版,Dell G3电脑。php和web有什么区别一:PHP (计算机编程语言)PHP(PHP: Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,...
    99+
    2015-10-28
    php web
  • swoole协程和go协程有哪些区别
    这篇文章主要讲解了“swoole协程和go协程有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“swoole协程和go协程有哪些区别”吧!区别:1、go协程是基于多线程的,可以利用多核...
    99+
    2023-06-29
  • php cgi和fastcgi有什么区别
    PHP CGI(Common Gateway Interface)和FastCGI(Fast Common Gateway Inte...
    99+
    2023-09-22
    php
  • php include和include_once有什么区别
    当我们在使用 PHP 编写网页时,有时我们需要在当前 PHP 文件中包含其他 PHP 文件中的代码。这时,就可以使用 include 或 include_once 函数来实现文件包含。那么,include 和 include_once 到底...
    99+
    2023-05-14
    include_once include php
  • php socket和curl有什么区别
    这篇文章主要讲解了“php socket和curl有什么区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php socket和curl有什么区别”吧!php socket和curl的不同之...
    99+
    2023-06-25
  • asp和php和html的区别有什么
    这期内容当中小编将会给大家带来有关asp和php和html的区别有什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。本教程操作环境:windows10系统、HTML5版、...
    99+
    2022-10-19
  • php中use和include有什么区别
    php中use和include有什么区别?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。HP中use、include的区别include是导入文件,如果找不到文件,include...
    99+
    2023-06-15
  • php中mysql和mysqli有什么区别
    这篇文章主要介绍了php中mysql和mysqli有什么区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。区别:mysqli是永远连接函数,而mysql是非持继连接函数。my...
    99+
    2023-06-15
  • PHP中empty()和isset()有什么区别
    这篇文章主要讲解了“PHP中empty()和isset()有什么区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP中empty()和isset()有什么区别”吧!二者共同点都可以判定一...
    99+
    2023-06-21
  • php fgetc()和fgets()间有什么区别
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑在php中,fgetc()和fgets()都可以从文件中读取数据,但也有区别,下面介绍一下。php fgetc()和fgets()的区别1、功能区别fgetc():从打...
    99+
    2014-07-22
    php fgetc() fgets()
  • php中nts和ts有什么区别
    本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。php中nts和ts有什么区别在PHP 开发和生产环境搭建过程中,需要安装PHP语言解析器。官方提供了2种类型的版本,线程安全(TS)版和非线程安全(NTS)版,有时...
    99+
    2015-12-17
    PHP
  • php中getenv和server有什么区别
    php中getenv和server的区别:1、getenv可获取系统的环境变量,语法为“string getenv(string varname)”,而“$_SERVER”是服务器超级全局变量数组;2、getenv不支持IIS的isapi方...
    99+
    2022-08-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作