公司的php服务框架是通过swool实现的,发现线上存在丢请求的情况。为了排查这个问题,顺便看了一下swoole的源码,了解了其IO、进程模型。本篇文章主要介绍选用swoole官方推荐的多进程、多线程模型时IO处理模型。
swoole的进程模型有一些复杂,包括:master进程、manager进程和worker进程,这里只介绍IO处理相关,所以暂时丢下manager进程(主要用于配置重载)。下面是整体结构图:
首先介绍各个元素:
- master进程:IO相关处理,又由一下两类线程组成:
- Accept Thread(swoole中叫做MainReactor):用于接受客户端的连接。一个swoole实例只能有一个Accept Thread。
- IO Thread(swoole中叫做ReactorThread)&#