纯 PHP 协程框架 Wind Framework 0.1.0 发布
Wind Framework 是我一开始基于纯 PHP 协程实现开发出的一个实验性项目,目的是为了测试纯 PHP 协程应用于工作中的可行性。但经过测试发现应对绝大部分 IO 密集型的场景是完全可行的,于是便基于此不断开发出来的框架。
基于此框架,可以使用纯 PHP 做到一个完全自足型的 PHP 程序。
传统的 php-fpm 做法,PHP 的应用场景非常有限,很多功能需要依赖周边工具做到,比如计划任务通过 crontab 来设置,消息队列可能以计划任务每分钟启动来执行,或通过进程的守护 Supervisord 来做一个很拙劣的长驻,基于对于数据库之类的连接数暴涨也要使用一些中间件,还有很多场景甚至是束手无策或者实现非常之差,php-fpm 碰到高并发时,实际并发数受到进程数的限制,想要把并发数做大实际付出也非常之大,所以往往企业规模做大,或者业务场景复杂之后都要引入其它语言的方案,这表面上是因为其它语言的生态问题,核心还是因为其它语言支持多线程或协程这两个重要的特性。
而基于纯 PHP 的协程框架,PHP 可以用相对非常少的资源实现以上的这些功能。
该框架是基于两个最重要的库 Workerman + Amphp 实现的。
-
Workerman 提供了 Socket 服务器、客户端,进程管理,Channel 等基础组件。
-
Amphp 提供了纯 PHP 的协程实现,以及协程的 MySQL、Http 客户端等等。
目前框架拥有以下组件:
-
HTTP 服务器(支持基于控制器路由的动态程序和静态文件)
-
依赖注入
-
缓存(实现 PSR-16 SimpleCache 的协程缓存)
-
进程信息收集组件
-
定时任务组件
-
协程 MySQL 客户端、支持连接池、查询构造器
-
日志组件(基于 MonoLog,支持异步写入)
-
自定义进程组件
-
异步消息队列组件(支持 Redis、Beanstalk 作为驱动)
-
协程 Redis 客户端
-
TaskWorker(可将同步调用发到其它进程为异步调用)
-
视图组件(支持 Twig 等多种实现)
PHP 从 7.0 开始大幅度提升了 PHP 的性能,从 8.0 开始又加入了 JIT 又能够大大提升程序的运算性能,这些性能的提升对于传统的 php-fpm 意义并不是很大,应用在长驻式的协程框架中才能把威力彻底发挥出来。
而根据目前的 PHP 相关讨论和提案,很可能会在 8.1版本开始引入官方的协程实现基础。到时候 Wind-Framework 也会及时跟进。
Wind-Framework GitHub 地址:https://github.com/wind-framework
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
云办公系统 skyeye v3.4.4发布,薪资模块更新
云办公系统 skyeye v3.4.4发布。 erp:https://gitee.com/doc_wei01/erp-pro OA:https://gitee.com/doc_wei01/skyeye 项目开发计划:https://docs.qq.com/doc/DQlRxcVRMWWVjbU1i?_from=1&disableReturnList=1,有问题可以联系作者,详情请看开发计划。 更新内容: 新增社保公积金设置 新增薪资模板设置 新增薪资要素字段设置 新增薪资发放历史查询 效果截图: 效果图 效果图
- 下一篇
新型勒索软件对制造业网络的影响
新型勒索软件在2020年严重扰乱了制造业,今年第三季度出现了一种令人不安的趋势,攻击者似乎在其勒索软件运营中把制造企业作为攻击目标。 一下是来自趋势科技智能保护网络的数据,显示了勒索软件攻击行动对不同行业的影响。 2020年第三季度受勒索软件影响的行业 制造设施一般都是一些大型物理设备(装配线,熔炉,电动机等),但是技术的进步和工业4.0的趋势也意味着将计算机引入生产和运营系统中。这些大型工业设备由计算机控制或监控。这些计算机又连接到其他计算机和网络,以便传递数据。 下图就是工业控制系统(ICS)的体系结构示意图。 0级是大型硬件所在的位置,这些是人们想到工厂或发电厂时通常想到的设备。 但是,要控制和监控这些设备,必须使用2级计算机。人机界面(HMI)和监督控制与数据采集(SCADA)计算机为运营员提供了对工业设备的可见性和控制力,而工程工作站则包含了所需的蓝图、设计文档、设备人代码、程序和配置创建最终产品。 在许多情况下,可以在级别3上找到包含设计文件和产品文档以在工程工作站之间进行共享访问的集中式文件服务器,以及历史数据库(包含设备、性能指标和产品质量的历史数据库)。 如果勒索软件...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果