workerman源码启动流程解析是怎样的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1915个文字,预计阅读时间需要8分钟。
它们有一个负责监听的父进程(Master),监控子进程状态,发送+signal给子进程,接收来自终端的命令、信号等工作。父进程可以说是整个系统启动后的入口。
版本:3.1.8(linux)
模型:GatewayWorker(Worker模型可与之类比)
注:只贴出讲解部分代码,出处以文件名形式给出,大家可自行查看
workerman最初只开发了Linux版本,win是后来增加的,基于命令行模式运行(cli)。
多进程模型
工作进程,Master、Gateway和Worker,Gateway主要用于处理IO事件,保存客户端链接状态,将数据处理请求发送给Worker等工作,Worker则是完全的业务逻辑处理,前者为IO密集型,后者为计算密集型,它们之间通过网络通信,Gateway和Worker两两间注册通信地址,所以非常方便的进行分布式部署,如果业务处理量大可以单纯的增加Worker服务。
它们有一个负责监听的父进程(Master),监听子进程状态,发送 signal 给子进程,接受来自终端的命令、信号等工作。父进程可以说是整个系统启动后的入口。
启动命令解析
既然以命令模式(cli)运行(注意与 fpm 的区别,后者处理来自网页端的请求),就必然有一个启动脚本解析命令,譬如说3.x版本(之前默认为daemon)新增一个 -d 参数,以表示守护进程运行,解析到该参数设置 self::$daemon = true, 随后fork子进程以脱离当前进程组,设置进程组组长等工作。
本文共计1915个文字,预计阅读时间需要8分钟。
它们有一个负责监听的父进程(Master),监控子进程状态,发送+signal给子进程,接收来自终端的命令、信号等工作。父进程可以说是整个系统启动后的入口。
版本:3.1.8(linux)
模型:GatewayWorker(Worker模型可与之类比)
注:只贴出讲解部分代码,出处以文件名形式给出,大家可自行查看
workerman最初只开发了Linux版本,win是后来增加的,基于命令行模式运行(cli)。
多进程模型
工作进程,Master、Gateway和Worker,Gateway主要用于处理IO事件,保存客户端链接状态,将数据处理请求发送给Worker等工作,Worker则是完全的业务逻辑处理,前者为IO密集型,后者为计算密集型,它们之间通过网络通信,Gateway和Worker两两间注册通信地址,所以非常方便的进行分布式部署,如果业务处理量大可以单纯的增加Worker服务。
它们有一个负责监听的父进程(Master),监听子进程状态,发送 signal 给子进程,接受来自终端的命令、信号等工作。父进程可以说是整个系统启动后的入口。
启动命令解析
既然以命令模式(cli)运行(注意与 fpm 的区别,后者处理来自网页端的请求),就必然有一个启动脚本解析命令,譬如说3.x版本(之前默认为daemon)新增一个 -d 参数,以表示守护进程运行,解析到该参数设置 self::$daemon = true, 随后fork子进程以脱离当前进程组,设置进程组组长等工作。

