Code前端首页关于Code前端联系我们

workman和swoole有何异同?

terry 2年前 (2023-09-24) 阅读数 62 #后端开发

workerman和swoole现阶段很受欢迎。有时间就需要互相了解一下,不然就不在php圈子里了。

swoole使用的是C语言实现的socket通信系统,而workerman则使用的是纯PHP实现的socket通信系统。两种流程模型之间也存在许多差异。

先说swoole的造型。请参阅以下调查图。 workman 和 swoole 有什么区别与异同?

处理器
这一步非常困难,也是我认为最基本的一步。这是一个多线程进程,包括主线程和reactor线程(数量是可配置的)。其中,主线程用于接受新的连接,然后计算每个reactor线程负责维护的连接数量,然后交给数量最少的reactor线程,以保证每个reactor的负载线程群岛最大程度地平衡。

基本上,当套接字变得可读或可写时,反应器线程将其发送到工作进程或客户端。另外,主线程负责接收所有信号,以避免reactor线程接收信号时发生中断。

更一般地说,主进程负责接受和托管连接,以及读取和写入套接字(发送和接收数据)。基本上,master进程负责IO。还应该注意的是,reactor 线程是完全异步且非阻塞的。

经理进程
这样认识:经理进程是员工进程和员工进程之母。说白了,管理者的流程切割了工人的流程,工人的流程,他们出生后就必须被管理。因此,进程管理器必须负责worker进程和worker进程的维护职责。

一般来说,这包括监视它们的状态、在意外挂起时恢复新进程(防止僵尸进程)以及恢复(恢复图例)。

工作进程
工作进程被管理进程中断。说白了,这个流程只是给他们的工作搬砖(官方文档中多次提到的业务代码)。其实经常编码的就是curd业务逻辑代码。我明白。已经?但工作进程更有趣的是,这个进程可以异步或同步工作。如果你不明白它的意思,就先记住它并理解它,然后再谈论它。

worker进程
worker进程(称为worker进程)实际上是一个worker进程,但是它是一个worker特定的进程。

如果你的worker流程中有耗时耗力的操作,你可以把它们扔到第一步,你去做别的事情。当作业完成后,工作进程将拾取它们。非常方便。但tasker进程只能工作在同步模式下,不能使用异步模式。

这就是为什么处理器不能使用定时器,但是工作进程可以使用定时器。

让我们简要总结并讨论这些步骤如何协同工作。说白了,主流程负责承担营销工作,但具体工作是员工来完成的。如果worker进程觉得某个进程太忙、太困难,它可以允许work进程去做。
流程管理者是后勤和责任人员流程中的资源保障部门,负责他们的生死和吃喝睡。

workerman的模型有点简单。首先,相比swoole,workerman没有swoole的反应堆线程。其次,workerman不具备经营简单业务的人员和业务流程。 。

对于workerman来说,是工作进程管理socket,但是对于swoole忠来说,是主进程中的reactor线程负责。

收到数据后,swoole可以通过自己的员工流程(类似fpm流程)来管理业务。

workerman 是一个强大的 PHP 套接字服务器框架。它基于PHP多进程和libevent事件轮询库。 PHP开发者只需要实现一两个接口就可以开发自己的网络应用,比如Rpc服务、聊天等。房间服务器、手机游戏服务器等

workerman 的目标是让 PHP 开发者能够更轻松地开发出高质量的基于套接字的应用服务,而无需了解 PHP 套接字和 PHP 多进程的细节。

workerman本身是一个多进程的PHP服务器系统,具有PHP进程管理和socket通信模块,因此可以独立运行,无需依赖php-fpm、nginx或apache等容器

workerman有两步型号

1。基本基本工人模型

2. Master Gate Worker 模型

Master Worker 模型的工作原理以及各步骤之间的关系如下: workman 和 swoole 有什么区别与异同?

Master Worker 模型说明: Master 步骤是最重要的步骤。启动过程中会读取conf配置,根据各个应用配置的IP和端口创建监听socket,然后根据步骤数创建子进程数,即worker进程。在配置中。工作进程会自动继承主进程创建的控件。 Socket 允许工作进程独立接受和管理客户端连接。 然后master进程进入信号控制逻辑,监听worker退出信号(worker进程退出后系统会自动向master进程发送SIGHCLD信号,master进程重新创建子进程并完成)丢失的子进程。),处理器会监听 workermand 脚本发送的停止信号(SIGINT)和软启动服务信号(SIGHUP)。 工作进程是主进程的子进程,自动继承主进程的监听套接字。每个员工流程都接受并处理客户交互。 Master-Worker模型更适合简单的业务应用或者短通讯应用。

这是主门工作人员模型的工作原理以及步骤之间的关系: workman 和 swoole 有什么区别与异同?

主门工作人员模型说明: 该模型有一组附加门进程。工作流程类似于主工作模型。不同之处在于员工流程而不是直接与客户打交道,而是在客户和员工流程之间有一个额外的网关流程。网关处理IO网络并维持长期的客户关系。 主门工作人员模型非常适合长距离通信应用。

当我们的业务代码使用swoole和workerman并行阻塞模式时,swoole很想结合nginx+fpm,但workerman和nginx是一样的。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门