广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php的fpm和swoole有哪些区别
  • 761
分享到

php的fpm和swoole有哪些区别

2023-06-29 03:06:40 761人浏览 薄情痞子
摘要

本文小编为大家详细介绍“PHP的fpm和swoole有哪些区别”,内容详细,步骤清晰,细节处理妥当,希望这篇“php的fpm和swoole有哪些区别”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。区别:1、“PHP

本文小编为大家详细介绍“PHP的fpm和swoole有哪些区别”,内容详细,步骤清晰,细节处理妥当,希望这篇“php的fpm和swoole有哪些区别”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

区别:1、“PHP-FPM”只适用于httpserver,而swoole不仅用于HttpServer,还可建立tcp连接;2、“PHP-FPM”通过FastCGI协议监听Nginx传输请求,而swoole通过Reactor监听事件变化。

教程操作环境: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 连接。

读到这里,这篇“php的fpm和swoole有哪些区别”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网PHP编程频道。

--结束END--

本文标题: php的fpm和swoole有哪些区别

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

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

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

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

下载Word文档
猜你喜欢
  • php的fpm和swoole有哪些区别
    本文小编为大家详细介绍“php的fpm和swoole有哪些区别”,内容详细,步骤清晰,细节处理妥当,希望这篇“php的fpm和swoole有哪些区别”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。区别:1、“PHP...
    99+
    2023-06-29
  • php-fpm和swoole有什么区别
    本教程操作环境:windows10系统、PHP7.1版、DELL G3电脑php-fpm和swoole有什么区别一.PHP-FPM早期版本的 PHP 并没有内置的 WEB 服务器,而是提供了 SAPI(Server API)给第三方做对接。...
    99+
    2019-08-28
    PHP
  • 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
  • swoole协程和go协程有哪些区别
    这篇文章主要讲解了“swoole协程和go协程有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“swoole协程和go协程有哪些区别”吧!区别:1、go协程是基于多线程的,可以利用多核...
    99+
    2023-06-29
  • swoole进程与线程有哪些区别
    今天小编给大家分享一下swoole进程与线程有哪些区别的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。区别:1、进程是系统中正...
    99+
    2023-06-29
  • php=== 和==的区别有哪些
    这篇文章主要介绍“php === 和==的区别有哪些”,在日常操作中,相信很多人在php === 和==的区别有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php === 和==的区别有哪些”的疑惑有所...
    99+
    2023-06-25
  • PHP和Node.js的区别有哪些
    今天就跟大家聊聊有关PHP和Node.js的区别有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Node.js概述Node.js是一种运行时环境,可提供实现用JavaScript...
    99+
    2023-06-16
  • php和css的区别有哪些
    php和css的区别有:1、性质不同,php属于服务器端语言,而css属于客户端语言;2、在网站中,php是用来控制程序功能的,而css是用来控制美工样式;3、php可以动态生成网页,而css需要配合各种脚本语言动态地对网页各元素进行格式化...
    99+
    2022-10-06
  • PHP和ASP的区别有哪些
    PHP和ASP的区别有:1、两者的主体不同,PHP是一种通用开源脚本语言,而ASP是一种活动服务器网页;2、特点不同,PHP是在服务器端执行的脚本语言,而ASP是CGI脚本程序的一种应用;3、用法不同,PHP主要用于Web开发领域,而ASP...
    99+
    2022-10-13
  • PHP和JavaScript的区别有哪些
    PHP和JavaScript的区别有:1、PHP中实参数小于形参就会报错,而JavaScript中没有限制;2、两者使用的字符串连接符不同,PHP使用“.”,而JavaScript使用“+”;3、数组相加的方法不同,PHP使用“+”,而Ja...
    99+
    2022-10-10
  • php和jsp的区别有哪些
    php与jsp的区别以下几点设计方向不同php是一种专为Web开发而设计服务器脚本语言,具有易上手的特点;而jsp是一种服务器端编程技术,常用于创建动态网页,是以Java语言作为脚本语言,结合HTML语法实现的。数据库访问方式不同jsp中是...
    99+
    2022-10-24
  • php和j2ee的区别有哪些
    这篇“php和j2ee的区别有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php和j2ee的区别有哪些”文章吧。区别:...
    99+
    2023-06-29
  • php和phpfpm有哪些区别
    php和phpfpm有哪些区别?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。PHP-FPM简介:PHP-FPM(FastCGI Process Manager:...
    99+
    2023-06-15
  • Java和PHP有哪些区别
    这篇文章主要介绍“Java和PHP有哪些区别”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java和PHP有哪些区别”文章能帮助大家解决问题。概述Java 是面向对象编程语言,它可用于撰写跨平台应用...
    99+
    2023-06-27
  • node和php有哪些区别
    今天小编给大家分享一下node和php有哪些区别的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。node和php的区别:1、n...
    99+
    2023-07-02
  • php和Dw有哪些区别
    这篇文章主要介绍了php和Dw有哪些区别的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php和Dw有哪些区别文章都会有所收获,下面我们一起来看看吧。php和DW的区别:PHP是一种通用开源脚本语言,是网站编程语...
    99+
    2023-06-29
  • php和java区别有哪些
    php和java区别有:1、java适合于开发大型的应用系统,而php适合于快速开发中小型应用系统;2、java通过JDBC来访问数据库,而php则是根据不同的数据库采用不同的数据库访问接口;3、在开发上php比较快,能够做到即写即用,而j...
    99+
    2022-10-09
  • php和it有哪些区别
    本篇内容主要讲解“php和it有哪些区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php和it有哪些区别”吧!php和it的区别:1、php是一种计算机编程语言,而it一般指互联网技术;2、...
    99+
    2023-06-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作