Swoole.001.手撸网络服务器模型
github: https://github.com/masterzcw/swoole Swoole进程结构 Master进程: 主进程 Manger进程: 管理进程 Worker进程: 工作进程 Task进程: 异步任务工作进程 Master进程 第一层, Master进程, 这个是swoole的主进程,这个进程是用于处理swoole的核心事件驱动的, 那么在这个进程当中可以看到它拥有一个MainReactor[线程]以及若干个Reactor[线程], swoole所有对于事件的监听都会在这些线程中实现, 比如来自客户端的连接, 信号处理等. 1.1 MainReactor(主线程) 主线程会负责监听server socket, 如果有新的连接accept, 主线程会评估每个Reactor线程的连接数量. 将此连接分配给连接数最少的reactor线程, 做一个负载均衡. 1.2 、Reactor线程组 Reactor线程负责维护客户端机器的TCP连接、处理网络IO、收发数据完全是异步非阻塞的模式. swoole的主线程在Accept新的连接后, 会将这个连接分配给一个固定的Reactor线程, 在socket可读时读取数据, 并进行协议解析, 将请求投递到Worker进程. 在socket可写时将数据发送给TCP客户端. 1.3、心跳包检测线程(HeartbeatCheck)