swoole扩展结构

整个swoole扩展可分为三层
第一层:Master进程,master进程为swoole的主进程,用于处理swoole的核心的事件驱动的。master进程分为若干个Reactor线程(包括主线程 main reactor和子线程 reactor),在每一个reactor子线程当中,都运行了一个 * 函数实例,那么swoole对于事件的监听,都会在这些线程中实现,比如来自于客户端的连接,本地通讯用的管道以及异步操作的文件、文件描述符,都会在注册在 * 当中。
第二层:Manager进程,manager进程是一个管理进程,这个进程的作用是用于创建、管理。在manager进程不会运行任何用户层的业务逻辑,它仅仅用于管理和分配
第三层:工作进程, 工作进程分为两个类型,包括 worker进程 和 task进程。 worker进程是swoole的主逻辑进程,用于处理来自客户端的请求。task进程是swoole提供的异步进程,主要用于处理一些耗时较长的同步任务。

在swoole中,进程与进程之间的通讯是通过管道来实现的。
在master进程当中,reactor线程接受来自客户端的数据时,这些数据通过管道发送给worker进程,worker进程来处理。当worker进程需要投递任务到task进程当中时,也是通过管道,来实现整个任务的投递。

另外,可以通过设置swoole的配置参数来使得worker进程和task进程的通讯的联系 消息队列。

总结:
当一个新的客户端链接来到时,首先会被main reactor线程接收到,然后将这个链接的读写操作的监听注册到相应的reacto线程当中,并通知worker进程处理对应的on conecte,就是收到链接的回调。那么当客户端发送数据时,reacto线程会接收到这些数据,并通过管道发送给worker进程进行处理,worker进程如果需要投递任务,则同样通过管道投递到task进程来进行处理,处理完成后,返回给worker进程,worker进程通知reactor进程交回给客户端。完成整个请求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值