WorkerMan的特性

1、纯PHP开发

使用WorkerMan开发的应用程序不依赖php-fpm、apache、nginx这些容器就可以独立运行。 这使得PHP开发者开发、部署、调试应用程序非常方便。

2、支持PHP多进程

为了充分发挥服务器多CPU的性能,WorkerMan默认支持多进程多任务。WorkerMan开启一个主进程和多个子进程对外提供服务, 主进程负责监控子进程,子进程独自监听网络连接并接收发送及处理数据,由于进程模型简单,使得WorkerMan更加稳定,更加高效。

3、支持TCP、UDP

WorkerMan支持TCP和UDP两种传输层协议,只需要更改一个属性便可以更换传输层协议,业务代码无需改动。

4、支持长连接

很多时候需要PHP应用程序要与客户端保持长连接,比如聊天室、游戏等,但是传统的PHP容器(apache、nginx、php-fpm)很难做到这一点。 使用WorkerMan,只要服务端业务不主动调用关闭连接接口,便可以使用PHP长连接。WorkerMan单个进程可以支持上万的并发连接,多进程则支持数十万的甚至百万并发连接。

5、支持各种应用层协议

WorkerMan接口上支持各种应用层协议,包括自定义协议。在WorkerMan中更换协议同样非常简单,同样只是配置一个字段,协议自动切换,业务代码零改动,甚至可以开启多个不同协议的端口,满足不同的客户端需求。

6、支持高并发

WorkerMan支持Libevent事件轮询库(需要安装Libevent扩展), 使用Libevent在高并发时性能非常卓越,如果没有安装Libevent则使用PHP内置的Select相关系统调用,性能也同样非常强悍。

7、支持服务平滑重启

当需要重启服务时(例如发布版本),我们不希望正在处理用户请求的进程被立刻终止,更不希望重启的那一刻导致客户端通讯失败。WorkerMan提供了平滑重启功能,能够保障服务平滑升级,不影响客户端的使用。

8、支持文件更新检测及自动加载

在开发过程中,我们希望在我们改动代码后能够立刻生效,以便查看结果。WorkerMan提供了FileMonitor文件监控组件,只要文件有更新,WorkerMan会自动运行reload,以便加载新的文件,使之生效。

9、支持以指定用户运行子进程

因为子进程是实际处理用户请求的进程,为了安全考虑,子进程不能有太高的权限,所以WorkerMan支持设置子运行进程运行的用户,使你的服务器更加安全。

10、支持对象或者资源永久保持

WorkerMan在运行过程中只会载入解析一次PHP文件,然后便常驻内存,这使得类及函数声明、PHP执行环境、符号表等不会重复创建销毁,这与Web容器下运行的PHP机制是完全不同的。在WorkerMan中,一个进程生命周期内静态成员或者全局变量在不主动销毁的情况下是永久保持的,也就是将对象或者连接等资源放到全局变量或者类静态成员中则当前进程的整个生命周期内的所有请求都可以复用。例如只要单个进程内初始化一次数据库连接,则以后这个进程的所有请求都可以复用这个数据库连接,避免了频繁连接数据库过程中TCP三次握手、 数据库权限验证、断开连接时TCP四次握手的过程,极大的提高了应用程序效率。

11、高性能

由于php文件从磁盘读取解析一次后便会常驻内存,下次使用时直接使用内存中的opcode, 极大的减少了磁盘IO及PHP中请求初始化、创建执行环境、词法解析、语法解析、编译opcode、请求关闭等诸多耗时过程, 并且不依赖nginx、apache等容器,少了nginx等容器与PHP通信的开销,最主要的是资源可以永久保持,不必每次初始化数据库连接等等, 所以使用WorkerMan开发应用程序,性能非常高。

12、支持HHVM

支持在HHVM虚拟机上运行,可成倍提升PHP性能。尤其是在cpu密集运算业务中,性能非常优异。通过实际压力测试对比,在没有负载业务的情况下,WorkerMan在HHVM下运行比在Zend PHP5.6运行网络吞吐量提高了30-80%左右

13、支持分布式部署

14、支持守护进程化

15、支持多端口监听

16、支持标准输入输出重定向

转载于:https://www.cnblogs.com/kevin-yang123/p/10250257.html

workerman介绍相关推荐

  1. 视频教程-Workerman入门到精通实战layIM聊天室-PHP

    Workerman入门到精通实战layIM聊天室 多年一线互联网开发实战以及培训经验,对php开发,linux运维架构有丰富的经验,善于分析问题,解决问题. lampol ¥149.00 立即订阅 扫 ...

  2. PHP常用框架及漏洞

    PHP常用框架及漏洞 PHP框架 laraval介绍: Laravel基于MVC架构,可以满足诸如事件处理.用户身份验证等各种需求,同时通过包管理实现模块化和可扩展的代码,并且对数据库管理有着健壮的支 ...

  3. workerman events.php,workerman安装event扩展的方法介绍

    workerman创建的socket服务,在高并发下需要 event 扩展.如果已经安装了宝塔面板,怎么安装 event扩展? 以php7安装event扩展为例:yum install libeven ...

  4. workerman的基本用法

    workerman是什么? Workerman是一个异步事件驱动的PHP框架,具有高性能,可轻松构建快速,可扩展的网络应用程序.支持HTTP,Websocket,SSL和其他自定义协议.支持libev ...

  5. 入口文件到控制器 php,workerman的入口文件_PHP开发框架教程

    使用thinkphp5对excel文件进行导出_PHP开发框架教程 有些人觉得excel导出很复杂,但其实很简单,两步操作即可完成想要的数据导出.第一步,将excel配置到thinkphp5框架的惯例 ...

  6. workerman在linux上怎么运行,linux系统中workerman的安装步骤

    linux系统中workerman的安装步骤,文件,测试,教程,相关文章,错了 linux系统中workerman的安装步骤 易采站长站,站长之家为您整理了linux系统中workerman的安装步骤 ...

  7. workman php 安装,workerman安装及遇到的问题解决

    下面由workerman入门教程栏目给大家介绍workerman安装及遇到的问题解决方法,希望对需要的朋友有所帮助! 1.workerman安装 workerman是php的一个socket框架,简化 ...

  8. workerman入门之GatewayWorker的使用

    GatewayWorker介绍 GatewayWorker是基于Workerman开发的一套TCP长连接的应用框架,实现了单发.群发.广播等接口,内置了mysql类库,GatewayWorker分为G ...

  9. php 即时聊天 实现方法,谈谈利用workerman实现即时聊天功能的方法

    本篇文章给大家介绍一下使用workerman实现即时聊天的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 开发文档:http://doc2.workerman.net/ 下载服 ...

最新文章

  1. 第一百一十四节,JavaScript文档对象,DOM进阶
  2. 安全牛:“新一代SOC研究报告”之市场指南及技术指南点评
  3. 【笔试面试考试】C++基础知识点[转]
  4. 使用iso升级_华佗品牌战略升级 彰显百年品质-产经要闻
  5. 第一个VueJs入门页面
  6. 855C Helga Hufflepuff's Cup
  7. 透过迷雾不再迷茫 浅析海康威视透雾技术
  8. STL--Function Objects(一)
  9. 【ElasticSearch】Es 源码之 Discovery DiscoveryModule 源码解读
  10. JavaScript提升(Hoisting)---借鉴自W3CSchool
  11. rocketmq技术内幕 pdf_618买什么也别忘了买书!精选100+本技术好书和思维导图,建议收藏!...
  12. makefile 生成.o_要学好 C 语言 / C++ ,Makefile 可少不了
  13. android获取屏幕控件位置问题
  14. android+百度阅读,百度阅读最新版
  15. 软考高项你想要的全在这
  16. mysql新增一个常数列_添加常数列
  17. 新人学c,求助%5.2f含义
  18. L46.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- w和who
  19. 每天一个---- 吉尔德定律和迈特卡尔定律
  20. autoscraper网络刮板模块总结

热门文章

  1. 读书笔记12:观察者模式
  2. 固态存储作缓存 提升性能有绝招
  3. anki 插入表格_anki|建造师选择题制作的方法
  4. proDAD Erazr
  5. movavi video suite2020中文版
  6. BZOJ 1433 Luogu P2055 [ZJOI2009]假期的宿舍 匈牙利算法
  7. 关于return和exit
  8. CocoaPods版本升级
  9. 【Auto Layout】Xcode6及以上版本,创建Auto Layout 约束时产生的一些变化【iOS开发教程】...
  10. iOS开发-项目的完整重命名方法,图文教程。