swoole(PHP异步网络通信引擎)的结构和运行流程

Posted sentangle

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swoole(PHP异步网络通信引擎)的结构和运行流程相关的知识,希望对你有一定的参考价值。

swoole结构说明和运行流程

主要分为三个部分:

1.Master:swoole的主进程

处理swoole核心的事件驱动, 它包含多个线程(蓝色Reactor), 所有事件的监听都在Reactor实现,如 客户端链接,本地通讯管道,异步操作文件都会在这里注册

2.Manager: 管理进程

用于worker和taker的创建和管理

3.worker和task进程:

worker进程: swoole主逻辑进程,用于处理客户端的请求
task进程:异步工作进程,主要处理耗时长的同步任务

进程与进程之间的通信基于管道来实现的, 当Reactor接受到客户端的数据时, 这些数据通过管道发送给worker进程处理,
当worker需要投递task任务时,也是通过管道来传递.

整个运行流程

一个新客户端连接时 首先会被Main Reactor线程接受到,将这个连接读写操作的监听注册到 新reactor线程当中,并通知worker进程处理相应的connect的回调,如果worker需要投递任务的话,会把数据发送task进程,task进程处理完返回给worker, worker通知reactor发送数据给客户端.

当worker线程出现意外,manager会重新创建一个worker,保证整个流程worker进程数是固定的

以上是关于swoole(PHP异步网络通信引擎)的结构和运行流程的主要内容,如果未能解决你的问题,请参考以下文章

swoolefy PHP的异步并行高性能网络通信引擎内置了Http/WebSocket服务器端/客户端

Linux 安装php扩展 swoole

centos7下安装PHP swoole扩展

PHP 异步使用swoole的可行性测试

学习swoole的心得

swoole和laravel-admin在nginx中配值端口转发