1.进程

2.共享内存

3.swoole 结构

1.master 进程(swoole 主进程)1.这个进程用于处理swoole的核心事件驱动的 ;2.拥有若干个 Reactor 线程 ;3.Reactor 子线程中运行了 epoll 实例, swoole 所有的对于事件的监听都会在这些线程中实现,比如来自客户端的连接,本地通信用的管道以及异步操作用的文件,文件描述符都会注册在这些 epoll 中;2.Manager 进程(管理进程)用于创建和管理更下一层的 Worker 进程和 Task 进程,Manager 中不会运行任务业务层的逻辑,仅仅只做进程的管理和分配3.工作进程1.Worker 进程,swoole 的主逻辑进程,用于处理来自客户端的请求2.Task Worker 进程,swoole 提供的异步工作进程,主要用于处理一些耗时任务较长的同步任务在 swoole 中,进程与进程之间的通信是基于管道的,
在 Master 当中,当Reactor 接收到了来自客户端的数据时,
这些数据会通过管道发送给 worker 进程,由 worker 进程进行处理;
当 worker 进程需要投递任务到 task worker 进程中时,也是通过管道来实现整个数据的投递;
我们可以通过设置 swoole 的配置参数,来使得 worker 进程和 task 进程之间的通信走系统的消息队列。4.一个请求连接的生命过程当一个新的客户端连接到来时,首先会被 main reactoer 接收,然后将这个连接读写操作的监听注册到对应的 reactor 线程中,
并通知 worker 进程处理对应的 onConnect, 也就是接收到连接的回调。当客户端发送数据之后,reactor 线程会收到这些数据并通过
管道,发送给 worker 进程去处理,worker 进程如果需要投递任务,它就会将数据同样通过管道,发送给 task 进程,task 进程处理完成后,
返回给 worker, worker 通知 reactor 线程,发送数据交回给客户端。当 worker 进程出现意外,或者处理一定的请求次数关闭之后,
manager 进程会重新拉起一个新的worker 进程,保证系统中的 worker 进程数目是一定的。

4.Task 进程

 task 进程是 swoole 中独立于 worker 进程的工作进程,用于处理一些耗时比较长的逻辑。这些逻辑如果在 task 进程中处理,并不影响 worker 进程去处理来自客户端的请求,由此大大提高了swoole 扩展处理并发的能力。在 worker 进程对,通过调用 task() 方法,发送数据通知到 task 进程,task 进程会在 onTask() 回调中,接收到这些数据,并进行处理,处理完成后,调用 finish() 函数,或者直接 return, 返回消息给 worker 进程。worker 在 onFinish() 函数中,收到这些消息,进行处理。
Task 常见问题Task 传递数据大小:数据小于 8k : 直接通过管道传递;数据大于 8k : 写入临时文件传递;Task 传递对象:可以通过序列化传递一个对象的拷贝;因为在 Task 当中,和 Worker 是2个不同的进程,他们的内存空间是不一样的,因此他们的变量存储也不一样;所以,在 Task 中对对象的改变不会反应到 Worker 进程中数据库连接和网络连接对象不可以传递Task 的 onFinish 回调Task 的 onFinish 回调会发回调用 task 方法的 worker 进程, 是投递给它的那个 worker 进程

5.Timer 定时器

task worker 使用系统定时器 , timerfdswoole_timer_tick(); // 创建一个永久定时器
swoole_timer_after(); // 一次性定时器

https://github.com/osgochina/Donkey

1.swoole 简介相关推荐

  1. swoole - 简介

    一.前言 最近在做物联网智能音箱的项目,遇到一个需求:中国移动杭研院想要减轻他们服务器自身的负担,要求音箱厂商使用自己的服务器来管理自己的音箱设备.大体的控制流程是,手机上的合家亲app对音箱设备有控 ...

  2. php swoole 教程,PHP7安装Swoole详细教程

    Swoole简介 Swoole是:PHP语言的高性能网络通信框架,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,数据库连接池,AsyncTask,消息队列,毫秒定时 ...

  3. swoole深入学习 1. swoole初始

    swoole深入学习 1. swoole初始 标签(空格分隔): swoole 0. 前言 swoole在php圈火了这么久,从2年前我用node写socket聊天服务器的时候就火了,那时候,经常有类 ...

  4. php微服务swoole,2.2 swoole

    # 2.2 swoole ## 简介 PHP的异步.并行.高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库 ...

  5. Thinkphp5 集成 Swoole

    Swoole简介 Swoole是一个面向生产环境的 PHP 异步网络通信引擎.使 PHP 开发人员可以编写高性能的异步并发 TCP.UDP.Unix Socket.HTTP,WebSocket 服务. ...

  6. PHP工程师零基础入门到就业班

    ├─01.PHP小白零基础入门 │  ├─01.步骤一:网页搭建入门 │  │  ├─01 html │  │  │      1-1 html准备工作.mp4 │  │  │      1-2 选择 ...

  7. swoole基础教程-1.简介

    大家好,本课程是为了帮助对于swoole有兴趣的入门者能够更快的熟悉和掌握swoole,同时也是对自己学过知识的回顾和强化,同时希望通过本人的抛砖引玉,能够让更多人有所收获. 本课程的目的主要有两个: ...

  8. Swoole的功能及简介

    Swoole不是一个像Zend Framework.CakePHP.Yii.symfony.ThinkPHP等一样的框架,也不是一个像WordPress.Drupal.Discuz.UChome等开源 ...

  9. php swoole yii,yii2-swoole

    软件简介 yii2 swoole:让yii2运行在swoole上 性能 运行在swoole上的yii2是运行在php-fpm上yii2的5倍以上,而且一句代码也不用修改. 在线demo性能体验 各个演 ...

  10. php7.1解压包安装,【Swoole】php7.1安装swoole扩展

    参照:https://zixuephp.net/article-430.html 1.源码编译安装,PHP版本7.1.33 2.在已经编译好安装的php7.1中安装swoole扩展. 一.下载swoo ...

最新文章

  1. uwp连接mysql数据库_mysql 8.0 新版本出现group by 语句不兼容问题
  2. 递归删除父节点及所有子节点(转)
  3. 网站编程手册 服务器端,Peergine-P2P服务器端开发手册-v1.3.doc
  4. pytorch 笔记:torch.nn.Conv2d
  5. 算法题目——子序列和问题(poj-3061)(尺取法)
  6. Microsoft .NET Pet Shop 4.0 学习之旅(二) - 项目的引用关系1
  7. Spring Boot 构建RESTful Web服务
  8. C++ 引用 支持多级嵌套吗
  9. matlab实验教程,matlab实验教程
  10. PixiJS学习(9)动画序列帧
  11. 电路基本原理的那些事儿之 分压原理
  12. 数字电路与逻辑设计 答案(第三版)
  13. DotFun Silverlight 整站系统Beta版上线!
  14. Git查询一定时间范围团队代码提交日志
  15. win+ubuntu双系统卸载ubuntu
  16. android app icon素材,史上最全的APP图标模板素材以及设计格式最全的
  17. 反函数求导:自然对数 ln是怎么得到的;为什么自然对数的导数是 1/ x;arcsin 和 arccos 的导数求算
  18. mysql 计算自然周
  19. 作业1丨创建问答式简历程序
  20. 为什么要用Linux系统

热门文章

  1. BZOJ3744 Gty的妹子序列(分块+树状数组)
  2. Windows可以往外ping,外部却ping不通本机
  3. 多个onload事件写法
  4. 你一点要认真了解 C++中的模式匹配介绍
  5. FriendlyUrls——在ASP.NET Web表单中使用更友好的URL
  6. JavaMail操作的总结(2)
  7. 搜狗推出卫星影像地图 将覆盖全部七个奥运城市
  8. 送给小白的 7 个 python 小坑
  9. 案例:回归分析-R实现
  10. bzoj 5084: hashit