专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

Workerman 是什么

来源:小易整编  作者:小易  发布时间:2023-08-17 09:57
摘要:Workerman是一款开源高性能异步PHPsocket即时通讯框架。支持高并发,超高稳定性,被广泛的用于手机app、移动通讯,微信小程序,手游服务端、网络游戏、PHP聊天室、硬件通讯、智能家居、车联网、物联网等领域的开发。Worker...

Workerman 是一款开源高性能异步PHP socket即时通讯框架。支持高并发,超高稳定性,被广泛的用于手机app、移动通讯,微信小程序,手游服务端、网络游戏、PHP聊天室、硬件通讯、智能家居、车联网、物联网等领域的开发。

Workerman 是什么

Workerman 是一款开源高性能异步 PHP socket 即时通讯框架。支持高并发,超高稳定性,被广泛的用于手机 app、移动通讯,微信小程序,手游服务端、网络游戏、PHP 聊天室、硬件通讯、智能家居、车联网、物联网等领域的开发。

Workerman 支持 TCP 长连接,支持 Websocket、HTTP 等协议,支持自定义协议。拥有异步 Mysql、异步 Redis、异步 Http、MQTT 物联网客户端、异步消息队列等众多高性能组件。

workerman 的目标是让 PHP 开发者更容易的开发出基于 socket 的高性能的应用服务,而不用去了解 PHP socket 以及 PHP 多进程细节。 workerman 本身是一个 PHP 多进程服务器框架,具有 PHP 进程管理以及 socket 通信的模块,所以不依赖 php-fpm、nginx 或者 apache 等这些容器便可以独立运行。

Workerman 支持的特性纯 PHP 开发,多进程支持,支持 php7,支持 hhvm支持 TCP/UDP,单机可支持数百万以上 TCP 长连接支持分布式部署,集群能支持数百万甚至更高的并发 TCP 连接支持 libevent 事件触发网络库支持热更新及服务器平滑重启拥有异步 Mysql、Redis、Dns 等众多高性能组件为什么 workerman 拥有卓越的性能

避免读取磁盘和反复编译

workerman 运行过程中,单个进程生命周期内只要 PHP 文件被载入编译过一次,便会常驻内存,不会再去从磁盘读取或者再去编译。 workerman 省去了重复的请求初始化、创建执行环境、词法解析、语法解析、编译生成 opcode 以及请求关闭等诸多耗时的步骤。 实际上 workerman 运行起来后便几乎没有磁盘 IO 及 PHP 文件编译开销,剩下的只是简单的计算过程,这使得 workerman 运行飞快。

数据或者资源可以全局共享

workerman 中多个请求是可以共享数据或者资源的,当前请求产生的全局变量或者类的静态成员在下一次请求中仍然有效。 这对于减少开销,提高运行效率非常有用。例如业务只要初始化一次数据库连接,那么全局都可以共享这个连接,这实现了真正意义上的数据库长连接。 从而不必每次用户请求都去创建新的连接,避免了连接时三次握手、连接后权限验证以及断开连接时四次挥手等耗时的交互过程。不仅数据库,像 redis、 memcache 等同样有效。少了这些开销和网络交互,使得 workerman 运行更快。

没有多余的网络开销

传统 PHP 应用程序需要借助 apache、nginx 等容器才能对外提供网络服务,这就导致多了一层 apache、nginx 等容器到 PHP 进程的数据传输开销。 并且由于运行了 apache 或者 nginx 容器,这将进一步消耗服务器的资源。 workerman 便没有这部分开销,这是由于 workerman 自身便是一个服务器容器具有 PHP 进程管理以及网络通讯功能, 完全不依赖于 apache、nginx、php-fpm 等这些容器便可以独立运行,所以性能更高。

进程模型简单

workerman 是多进程(也有多线程版本)的,可以充分利用服务器多核资源。并且 workerman 具有简单的进程模型,主进程只负责监控子进程,而每个子进程独自接受维护客户端的连接,独自读取连接上发来的数据,独自处理。 子进程间默认没有任何数据通讯,主进程和子进程之间只有一次信号通讯。简单的进程通讯模型使得 workerman 相比其它复杂的进程模型的软件更高效。


本文地址:IT百科频道 https://www.hkm168.com/tags/1028430.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


IT百科
小编:小易整编
相关文章相关阅读
  • 某台微机安装的是64位操作系统中,64位指的是什么

    某台微机安装的是64位操作系统中,64位指的是什么

    某台微机安装的是64位操作系统中,64位指的是cpu的字长,即cpu每次能处理64位二进制数据。字长是cpu的主要技术指标之一,指的是cpu一次能并行处理的二进制位数,字长总是8的整数倍,通常pc机的字长为32位,64位。本教程操作环境:w...

  • c语言是什么意思

    c语言是什么意思

    一:c语言是什么意思C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言,以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低...

  • skype是什么软件

    skype是什么软件

    skype是一种简单的免费软件,使您能够在数分钟之内在世界上的任何角落拨打免费电话,它使用全新的p2p【对等】技术将您与其他skype用户相连接。Skype是一种简单的免费软件,使您能够在数分钟之内在世界上的任何角落拨打免费电话。Sky...

  • 计算机的三类总线分别是什么?

    计算机的三类总线分别是什么?

    计算机的三类总线分别是:控制总线、地址总线和数据总线。控制总线用于将微处理器控制单元的信号,传送到周边设备;地址总线用来指定在ram之中储存的数据的地址;数据总线用于在cpu与ram之间来回传送需要处理或是需要储存的数据。总线(Bus)是计...

  • 2k屏幕是什么意思

    2k屏幕是什么意思

    2k屏幕是指分辨率能够达到2560*1440的屏幕。2k是一个通用术语,指屏幕或者内容的水平分辨率达约2000像素的分辨率等级;又因“16:9”的比例是高清晰度视频规格的国际标准,所以2k分辨率在视频制作、显示屏等领域常见格式为2560*1...

  • mysql中的不等于符号是什么

    mysql中的不等于符号是什么

    mysql中的不等于符号有两种:“!=”和“”;它们都可用于判断数字、字符串、表达式是否不相等。对于“!=”和“”,如果两侧操作数不相等,返回值为1,否则返回值为0;如果两侧操作数有一个是null,那么返回值也是null。本教程操作环境:w...

  • ipad a1822是什么型号

    ipad a1822是什么型号

    ipada1822是苹果ipad第5代的型号;ipad第5代是苹果公司于2017年03月21日在美国加利福尼亚州发布的平板电脑;该机型采用铝镁合金材质一体成型结构;前端外框为白色或黑色;有银色、金色和深空灰色3种外观颜色。本教程操作环境:...

  • html中浮动是什么

    html中浮动是什么

    在html中,浮动就是让元素可以向左或向右移动,直到它的外边距碰到其父级的内边距或者是上一个元素的外边距,只需要给元素设置“float:left|right|none|inherit”样式即可。本教程操作环境:windows7系统、CSS3...

  • 周排行
  • 月排行
  • 年排行

精彩推荐