workerman
workerman是一个高性能的PHP socket 服务器框架,workerman基于PHP多进程以及libevent事件轮询库,PHP开发者只要实现一两个接口,便可以开发出自己的网络应用,例如Rpc服务、聊天室服务器、手机游戏服务器等。
workerman的目标是让PHP开发者更容易的开发出基于socket的高性能的应用服务,而不用去了解PHP socket以及PHP多进程细节。 workerman本身是一个PHP多进程服务器框架,具有PHP进程管理以及socket通信的模块,所以不依赖php-fpm、nginx或者apache等这些容器便可以独立运行
其中
workerman有两种进程模型
1、基本的master worker模型
2、master gateway worker模型
master worker模型工作流程及进程间关系如下:
master worker模型说明:
master进程为主进程,启动过程中读取conf配置,根据每个应用配置中的ip和端口创建监听socket,然后再根据配置中的进程数创建对应数量的子进程即worker进程,worker进程会自动继承master进程创建的监听socket,使得worker进程能够独立的接受并处理客户端的连接。而后master进程进入监听信号的逻辑中,监听worker进程退出信号(worker进程退出后,系统会自动向master进程发送一个SIGHCLD信号,mater进程会重新创建子进程,将缺失的子进程补上),master进程还会监听workermand脚本发来的停止信号(SIGINT)和平滑重启服务信号(SIGHUP)
worker进程为master进程派生出来的子进程,自动继承了master进程的监听socket,每个worker进程独立的接受并处理客户端的连接。
master worker模型比较适合业务简单的应用或者短连接应用
master gateway worker模型工作流程和进程间关系如下:
master gateway worker 模型说明:
这种模型多了一个gateway进程组,工作流程与master worker模型基本相同,区别是worker进程不再直接与客户端打交道,客户端与worker进程之间多了一个gateway进程,gateway专职处理网络IO,并维护客户端的长连接。
master gateway worker 模型非常适合长连接应用
你是不是多少有了解一点,但是你却对这个不精啊!可以加xv:phpyasi520 交流学习,分享tp,laravel,swoole,swoft微服务、SQL性能优化,分布式、高并发等教程,各种大牛都是1-78年PHP开发者,每天还有11年的架构师做课程讲解,助你进阶中高级PHP程序员,增值涨薪!
网友评论