workerman本身是一个php多进程服务器框架,具有php进程管理以及socket通信的模块,所以不依赖php-fpm、nginx或者apache等这些容器便可以独立运行。
纯php开发
workerman完全使用php开发,使用workerman开发的应用程序不依赖php-fpm、apache、nginx这些容器就可以独立运行。 这使得php开发者开发、部署、调试应用程序非常方便。 (推荐学习: workerman教程)
支持php多进程
为了充分发挥服务器多cpu的性能,workerman默认支持多进程多任务。workerman开启一个主进程和多个子进程对外提供服务, 主进程负责监控子进程退出信号,并负责生成新的子进程去处理服务,这样做不仅提高了应用程序的性能,而且使得workerman更加稳定。
支持tcp、udp
workerman支持tcp和udp两种传输层协议,只需要更改配置的一个字段,便可以更换传输层协议,业务代码无需任何改动。
支持高并发
workerman支持libevent事件轮询库(需要安装libevent扩展), 使用libevent在高并发时性能非常卓越,如果没有安装libevent则使用php内置的select相关系统调用。
支持各种应用层协议
接口上支持各种应用层协议,包括自定义协议。workerman默认支持的协议有http、websocket、以及简单的text文本协议。 同时workerman提供了通用的协议接口,开发者基于此接口便可以方便的开发出自己的协议。
支持长连接
很多时候需要php应用程序要与客户端保持长连接,比如聊天室、游戏等,但是传统的php容器(apache、nginx、php-fpm)很难做到这一点。
使用workerman可以轻松使用php长连接。php单个进程可以支持几千甚至几万的并发连接,多进程则可支持数十万甚至上百万的并发连接。
自带监控
workerman内部带有监控统计模块,能够统计workerman自身的一些数据,如进程退出次数及退出状态,每个进程占用内存大小及监听的ip端口、每个进程启动时间、 进程运行的服务名、每个进程处理请求数、连接数、数据包发送失败量等等。这些信息可以本地运行php start.php status本地查看。
支持心跳检测
gateway/worker开发模型支持服务端的心跳检测,可以定时向客户端发送应用层的心跳,能够及时检测到客户端极端掉线情况(掉电、突发网络故障等)。
以上就是workerman效率高吗的详细内容。