首页 » 网站建设 » phpswooleworkman技巧_workman 与swoole的相同点和不合点

phpswooleworkman技巧_workman 与swoole的相同点和不合点

访客 2024-10-23 0

扫一扫用手机浏览

文章目录 [+]

先说下swoole的进程模型,看一下以下解析图。

master进程

phpswooleworkman技巧_workman 与swoole的相同点和不合点 phpswooleworkman技巧_workman 与swoole的相同点和不合点 网站建设

这个进程比较繁芜,也是我认为最核心的进程,这是一个包含多线程的进程,分别是一个主线程和n个reactor线程(数量可以配置)。
个中,主线程用于accept新的连接,然后评估一下每个reactor线程卖力掩护的连接数,然后分配给数量最少的那个reactor线程,最大程度担保每个reactor线程的负载量是均衡的。
实质上讲,一旦一个socket可读或者可写了,就由reactor线程发送给worker进程或者发送会客户端。
除此之外,主线程还卖力对所有旗子暗记的接管,避免reactor线程收到旗子暗记的打扰中断。
说的洋气点儿便是:master进程卖力了连接的accept、托管、socket的可读可写(数据的发送和接管),实质上讲,master进程卖力了IO。
还须要把稳一点儿的是reactor线程是彻底的全异步非壅塞事情办法。

phpswooleworkman技巧_workman 与swoole的相同点和不合点 phpswooleworkman技巧_workman 与swoole的相同点和不合点 网站建设
(图片来自网络侵删)

manager进程

manager进程是worker进程和taskworker进程的妈,说的洋气点儿便是manager进程fork出来了worker进程和taskworker进程,生出来了就得管,以是,manager进程得卖力对worker进程和taskworker进程的抚养责任,详细包括监控它们的状态、当它们意外挂了后重新拉起一个新的进程(避免了僵尸进程)、平滑重启(便是传说中的reload)。

worker进程

worker进程是manager进程fork出来的,这个进程说白了便是搬砖干活(官方文档中屡次提到的业务代码),实在便是平时码的那些curd业务逻辑代码,懂了吧?只不过worker进程比较diao的是,这个进程可以用异步办法去事情,也可以用同步办法去事情。
如果听不懂什么意思,那就先背过,先混个脸熟再说。

taskworker进程

taskworker进程(后文中称tasker进程)实际实质上也是worker进程,只不过是一种分外的worker进程。
如果你的worker进程中存在一些耗时耗力的操作,那么可以先抛给tasker进程,自己先去干别的,等tasker干完了,再由worker进程取回,非常diao。
但是tasker进程只能事情在同步办法下,并不能利用异步。
这便是为什么tasker进程不可以利用定时器,而worker进程可以利用定时器的缘故原由。

大略总结混在一起说下这几种进程之间是怎么搭配起来干活的。
见说来说,便是master进程便是接活儿的发卖,但是详细干活则由worker进程来做,如果worker进程觉得到某些流程太繁忙繁芜就可以让tasker进程来做。
而manager进程便是后勤worker进程和takser进程的人力资源保障部,卖力他们的死活存亡和吃喝拉撒。

而workerman的进程模型相对就要大略很多了,首先相对付swoole来说,workerman没有swoole中的reator线程,其次workerman没有用于处理普通业务的worker进程以及tasker进程。
而workerman的话,socket是由worker进程卖力的,swoole中则是由主进程中的reactor线程来卖力的。
而swoole在接管到数据后,可以通过自己的worker进程来处理业务(有点儿类似于fpm进程)。

workerman是一个高性能的PHP socket 做事器框架,workerman基于PHP多进程以及libevent事宜轮询库,PHP开拓者只要实现一两个接口,便可以开拓出自己的网络运用,例如Rpc做事、谈天室做事器、手机游戏做事器等。

workerman的目标是让PHP开拓者更随意马虎的开拓出基于socket的高性能的运用做事,而不用去理解PHP socket以及PHP多进程细节。
workerman本身是一个PHP多进程做事器框架,具有PHP进程管理以及socket通信的模块,以是不依赖php-fpm、nginx或者apache等这些容器便可以独立运行

个中

workerman有两种进程模型

1、基本的master worker模型

2、master gateway worker模型

master worker模型事情流程及进程间关系如下:

master worker模型解释:

master进程为主进程,启动过程中读取conf配置,根据每个运用配置中的ip和端口创建监听socket,然后再根据配置中的进程数创建对应数量的子进程即worker进程,worker进程会自动继续master进程创建的监听socket,使得worker进程能够独立的接管并处理客户真个连接。
而后master进程进入监听旗子暗记的逻辑中,监听worker进程退出旗子暗记(worker进程退出后,系统会自动向master进程发送一个SIGHCLD旗子暗记,mater进程会重新创建子进程,将缺失落的子进程补上),master进程还会监听workermand脚本发来的停滞旗子暗记(SIGINT)和平滑重启做事旗子暗记(SIGHUP)

worker进程为master进程派生出来的子进程,自动继续了master进程的监听socket,每个worker进程独立的接管并处理客户真个连接。

master worker模型比较适宜业务大略的运用或者短连接运用

master gateway worker模型事情流程和进程间关系如下:

master gateway worker 模型解释:

这种模型多了一个gateway进程组,事情流程与master worker模型基本相同,差异是worker进程不再直接与客户端打交道,客户端与worker进程之间多了一个gateway进程,gateway专职处理网络IO,并掩护客户真个长连接。

master gateway worker 模型非常适宜长连接运用

当我们业务代码以同步壅塞办法来利用swoole和workerman的时候,swoole则很想nginx+fpm的二合一体,而workerman则只相称于nginx

标签:

相关文章

东营画展,艺术之光在黄河入海口绽放

东营,这座位于黄河入海口的美丽城市,近年来在文化艺术领域取得了显著成就。其中,东营画展作为一项重要的文化活动,吸引了众多美术爱好者...

网站建设 2024-12-05 阅读0 评论0

东营网投稿攻略,让你的声音在这里被听见

随着互联网的飞速发展,网络已成为人们获取信息、交流思想的重要平台。东营网作为一家具有影响力的地方门户网站,为广大网民提供了一个展示...

网站建设 2024-12-05 阅读0 评论0

东莞设计师,创新与传统的交融之地

东莞,这座位于珠江口东岸的城市,以其独特的地理优势、丰富的产业基础和深厚的文化底蕴,成为了中国乃至全球的设计创新中心。在这里,设计...

网站建设 2024-12-05 阅读0 评论0