美文网首页
swoole进程模型(转)

swoole进程模型(转)

作者: Yagami_ | 来源:发表于2017-12-06 20:55 被阅读0次

swoole的强大之处就在与其进程模型的设计,既解决了异步问题,又解决了并行。

主线程MainReactor

swoole启动后主线程会负责监听server

socket,如果有新的连接accept,主线程会评估每个Reactor线程的连接数量。将此连接分配给连接数最少的reactor线程。这样的好处是

每个reactor线程持有的连接数是非常均衡的,没有单个线程负载过高的问题

解决了惊群问题,尤其是拥有多个listen socket时,节约了线程唤醒和切换的开销

主线程内还接管了所有信号signal的处理,使Reactor线程运行中可以不被信号打断。

管理进程Manager

swoole运行中会创建一个单独的管理进程,所有的worker进程和task进程都是从管理进程Fork出来的。管理进程会监视所有子进程的退出事件,当worker进程发生致命错误或者运行生命周期结束时,管理进程会回收此进程,并创建新的进程。

管理进程还可以平滑地重启所有worker进程,以实现程序代码的重新加载。

异步Reactor线程

swoole拥有多线程Reactor,所以可以充分利用多核,开启CPU亲和设置后,Reactor线程还可以绑定单独的核,节约CPU

Cache开销。

swoole的Reactor线程是全异步非阻塞的,即使你的worker进程用了同步模式,依然不影响reactor线程的性能。在worker进程组很繁忙的状况下,reactor线程完全不受影响,依然可以收发处理数据。

TCP是流式的,没有边界,所以处理起来很麻烦。Reactor线程可以根据EOF或者包头长度,自动缓存数据,组装数据包。等一个请求完全收到后,再投递给Worker进程。

同步或异步Worker进程

与传统的半同步半异步服务器不同,Swoole的worker进程可以是同步的也可以异步的,这样带来了最大的灵活性。当你的Server需要很高性能,业务逻辑较为简单时你可以选择异步模式。当业务逻辑复杂多变,可以选择同步模式。

这里要比Node.js强大太多了。

TaskWorker进程池

swoole除了Reactor线程,Worker进程外还提供了TaskWorker进程池,目的是为了解决在业务代码中,有些逻辑部分不需要马上执行。利用task进程池,可以方便的投递一个异步任务去执行,在Worker进程空闲时再去捕获任务执行的结果。

原文地址:http://rango.swoole.com/archives/305

相关文章

  • swoole进程模型(转)

    swoole的强大之处就在与其进程模型的设计,既解决了异步问题,又解决了并行。 主线程MainReactor sw...

  • swoole进程【转】

    转自与https://blog.csdn.net/qmhball/article/details/53888197...

  • Swoole的进程模型

    前文再续,就书接上一回,随着与Server、TCP、Protocol的邂逅,Swoole终于迎来了自己的故事,今天...

  • Swoole的进程模型

    前言 前文再续,就书接上一回,随着与Server、TCP、Protocol的邂逅,Swoole终于迎来了自己的故事...

  • Swoole多进程

    Swoole Server和Nginx服务一样,采用了多进程的架构模型。相对比多线程模型,多进程结构管理方便,不存...

  • 进程线程以及swoole进程模型

    一、进程与线程的简单解释1、计算机的核心是CPU,它承担了所有的计算任务,它就像一个时刻在运行的工厂。2、假设工厂...

  • Swoole 源码分析——内存模块之共享内存

    前言 我们知道,由于 PHP 没有多线程模型,所以 swoole 更多的使用多进程模型,因此代码相对来说更加简洁,...

  • 煮泡面引发的Go协程之并发编程支持

    swoole有协程,Go也有。我们知道与PHP相比,使用swoole和Go除了进程模型不一样,其主要的协程特性是关...

  • Swoole的进程模型.md

    Swoole的进程模型.md 前文再续,就书接上一回,随着与Server、TCP、Protocol的邂逅,Swoo...

  • swoole进程关系梳理

    基于上一篇文章swoole+tp5异步多线程,发现很多问题,所以深入理解一下swoole的进程模型 想探讨一下sw...

网友评论

      本文标题:swoole进程模型(转)

      本文链接:https://www.haomeiwen.com/subject/gxalixtx.html