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进程数是固定的

最新文章

  1. Perl碎碎念
  2. zabbix 3.0.4 Nginx 性能监控
  3. Dynamics Webservice Call with Credential
  4. mongodb 物理删除数据
  5. Codeforces Round #362 (Div. 2)->A. Pineapple Incident
  6. asp 文件上传(无组件上传)
  7. libpcre.so.1 cannot be found
  8. Java NIO与IO的差别和比較
  9. 如何提升 CSS 选择器性能
  10. PYTHON BS 四大对象
  11. 苹果cms安装及配置详细教程
  12. MQTT安装
  13. Flask 入门一( flask 框架和 flask-script 库)
  14. php中empty和isset函数
  15. Redis 模糊匹配 SearchKeys
  16. CodeForces 316D3 PE Lesson
  17. StringBuilder与StringBuffer的区别
  18. Python3爬虫(二)网络爬虫的尺寸与约束
  19. Distance matrix
  20. J2EE的十三个技术——EJB之消息驱动JMS

热门文章

  1. C++的特殊预处理定义#、##和#@
  2. 虚拟机中linux系统无法打开原保存的显示器配置解决方法
  3. Excel解除'工作表保护密码',并复原密码设定
  4. vue-router学习之二
  5. Redo与Undo的理解
  6. java之set接口
  7. JVM探秘:四种引用、对象的生存与死亡
  8. k8s的简介以及搭建
  9. 源码分析 Kafka 消息发送流程(文末附流程图)
  10. 分享在开发多终端使用比较多的Adb命令