[发明专利]一种基于PHP处理高并发IO的方法在审

专利信息
申请号: 201910898049.6 申请日: 2019-09-23
公开(公告)号: CN110795254A 公开(公告)日: 2020-02-14
发明(设计)人: 鲁曦 申请(专利权)人: 武汉智美互联科技有限公司
主分类号: G06F9/54 分类号: G06F9/54;G06F9/48
代理公司: 11335 北京汇信合知识产权代理有限公司 代理人: 王维新
地址: 430000 湖北省武汉市东湖新技术开发区光谷大道*** 国省代码: 湖北;42
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 协程 系统资源 异步处理 调度 线程 并发 代码逻辑 继续执行 进程创建 线程创建 性能瓶颈 多进程 多线程 阻塞 创建 耗时 配置 进程
【说明书】:

发明公开了一种基于PHP处理高并发IO的方法,包括:Swoole根据配置创建单个或者多个进程;Master进程创建N个Reactor线程;在每个Reactor线程中创建协程;通过协程调度异步处理IO任务。本发明使用Swoole模型,通过多线程Reactor模型(基于epoll)加上多进程Worker,在每个线程创建协程,通过协程调度异步处理IO任务,即当遇上IO耗时的情况时,通过协程调度去先处理其他代码逻辑,直到IO完成再继续执行之前的代码;充分利用系统资源,减少IO阻塞等待和系统资源的浪费,也大大提升了高并发下的IO处理能力,可以解决Accept性能瓶颈和惊群问题。

技术领域

本发明涉及高并发IO处理技术领域,具体涉及一种基于PHP处理高并发IO的方法。

背景技术

高并发它通常是指同时并行处理很多请求,它是分布式系统架构设计中必须考虑的因素之一。当系统对请求做出响应的时间过大,就会大大降低互联网产品的用户体验度。

在互联网时代,高并发通常是指并发访问,也就是在某个时间点,有多少个访问同时到来。通常一个系统的日PV在千万以上,有可能是一个高并发的系统。

目前在并发IO的解决方案中最多的是使用IO复用技术,Linux很早就提供了select系统调用,可以在一个进程内维持1024个连接。后来又加入了poll系统调用,poll做了一些改进,解决了1024限制的问题,可以维持任意数量的连接。但select/poll还存在一个问题:select/poll需要循环检测连接是否有事件。此时,如果服务器有100万个连接,在某一时间只有一个连接向服务器发送了数据,select/poll需要做循环100万次,其中只有1次是命中的,剩下的999999次都是无效的,白白浪费了CPU资源。

直到Linux 2.6内核提供了新的epoll系统调用,可以维持无限数量的连接,而且无需轮询,这才真正解决了C10K问题。现在各种高并发异步IO的服务器程序都是基于epoll实现的,比如Nginx、Node.js、Erlang、Golang。像Node.js这样单进程单线程的程序,都可以维持超过1百万TCP连接,全部归功于epoll技术。

发明内容

针对上述问题中存在的不足之处,本发明提供一种基于PHP处理高并发IO的方法。

本发明公开了一种基于PHP处理高并发IO的方法,包括:

Swoole根据配置创建单个或者多个进程;

将当前进程作为Master进程,所述Master进程创建N个Reactor线程;

在每个Reactor线程中创建协程;

通过协程调度异步处理IO任务。

作为本发明的进一步改进,N由配置的reactor_num、worker_num和CPU核心数目共同决定。

作为本发明的进一步改进,每个所述Reactor线程中运行一个Reactor对象;

所述Reactor线程,用于接收来自客户端发送的数据、发送来自服务器的响应数据和处理Swoole定时器事件。

作为本发明的进一步改进,所述在每个Reactor线程中创建协程,包括:

每个Reactor线程在接收到客户端的请求时,通过swoole的Go函数创建一个协程。

作为本发明的进一步改进,所述通过协程调度异步处理IO任务,包括:

协程中遇到IO阻塞,协程让出控制,进入协程调度队列,对阻塞任务进行异步处理。

与现有技术相比,本发明的有益效果为:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉智美互联科技有限公司,未经武汉智美互联科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910898049.6/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top