一种基于PHP处理高并发IO的方法技术

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

A method of processing high concurrent IO based on PHP

【技术实现步骤摘要】
一种基于PHP处理高并发IO的方法
本专利技术涉及高并发IO处理
,具体涉及一种基于PHP处理高并发IO的方法。
技术介绍
高并发它通常是指同时并行处理很多请求,它是分布式系统架构设计中必须考虑的因素之一。当系统对请求做出响应的时间过大,就会大大降低互联网产品的用户体验度。在互联网时代,高并发通常是指并发访问,也就是在某个时间点,有多少个访问同时到来。通常一个系统的日PV在千万以上,有可能是一个高并发的系统。目前在并发IO的解决方案中最多的是使用IO复用技术,Linux很早就提供了select系统调用,可以在一个进程内维持1024个连接。后来又加入了poll系统调用,poll做了一些改进,解决了1024限制的问题,可以维持任意数量的连接。但select/poll还存在一个问题:select/poll需要循环检测连接是否有事件。此时,如果服务器有100万个连接,在某一时间只有一个连接向服务器发送了数据,select/poll需要做循环100万次,其中只有1次是命中的,剩下的999999次都是无效的,白白浪费了CPU资源。...

【技术保护点】
1.一种基于PHP处理高并发IO的方法,其特征在于,包括:/nSwoole根据配置创建单个或者多个进程;/n将当前进程作为Master进程,所述Master进程创建N个Reactor线程;/n在每个Reactor线程中创建协程;/n通过协程调度异步处理IO任务。/n

【技术特征摘要】
1.一种基于PHP处理高并发IO的方法,其特征在于,包括:
Swoole根据配置创建单个或者多个进程;
将当前进程作为Master进程,所述Master进程创建N个Reactor线程;
在每个Reactor线程中创建协程;
通过协程调度异步处理IO任务。


2.如权利要求1所述的方法,其特征在于,N由配置的reactor_num、worker_num和CPU核心数目共同决定。


3.如权利要求1所述的方法,其特征在于,每个所述Reactor线程中运行一个R...

【专利技术属性】
技术研发人员:鲁曦
申请(专利权)人:武汉智美互联科技有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1