一种基于Swoole框架和Yaf框架的消息处理方法和装置制造方法及图纸

技术编号:24590537 阅读:19 留言:0更新日期:2020-06-21 02:35
本发明专利技术提供了一种基于Swoole框架和Yaf框架的消息处理方法和装置。该方法包括:接收客户端发送的请求消息;将所述请求消息分配至Swoole框架的消息处理进程;利用所述消息处理进程调用Yaf框架对所述请求消息进行处理,并接收Yaf框架返回的处理结果;将所述处理结果返回给所述客户端。本发明专利技术实施例提供的方法通过结合利用Swoole框架和Yaf框架进行消息处理,既可以重复利用Swoole框架的高并发机制,又能利用Yaf框架的规范化、流程化的消息路由以及异常处理机制,极大地加快了高并发下的消息处理速度,显著地提升了高并发下处理性能。

A message processing method and device based on swoole framework and YAF framework

【技术实现步骤摘要】
一种基于Swoole框架和Yaf框架的消息处理方法和装置
本专利技术涉及通信
,特别是一种基于Swoole框架和Yaf框架的消息处理方法、基于Swoole框架和Yaf框架的消息处理装置、计算机存储介质以及计算设备。
技术介绍
现有的服务端的高并发模型通常采用Nginx+php-fpm。Nginx通过反向代理功能将动态请求转向后端php-fpm。php-fpm(FastCGIProcessManager,FastCGI进程管理器)是FastCGI的实现,并提供了进程管理的功能,其进程包含Master进程和Worker进程,其中Master进程只有一个,负责监听端口,并接收来自web服务器的请求,而Worker进程则有多个,用于真正执行php代码,从而实现多进程高并发机制。然而,Nginx+php-fpm框架没有IO多路复用模型,性能存在瓶颈:其一,当php进程过多时,会导致系统进程调度频繁,影响整个系统的性能;其二,当php进程过多时,会导致和数据库DB的长连接太多,影响整个系统的性能。为了提升高并发处理效率,现有技术中通过IO多路复用模型来实现。实现IO多路复用模型的方法有多种。对于php语言环境,可以采用Swoole框架;对于Linux环境,可以直接采用epoll;对于Go语言环境,则可以采用Go协程。Swoole高并发框架以CPU内核数为基础,基本在10-20个进程左右,利用epoll的高并发机制,其整体性能压测(包括qps(QueriesPerSecond,每秒查询率)和时延)要比php-fpm高出5到10倍左右,从而使服务器能够应对高并发和大量TCP连接。Yaf(YetAnotherFramework)是一个C语言编写、以php扩展形式提供的php开发框架,与一般的php框架相比更快、更轻便。Yaf框架本身定义了一套web服务端的消息业务处理逻辑和异常处理逻辑。Yaf框架这种规范化的、流程化的消息处理格式非常适合服务端的业务处理,但Yaf框架无法解决高并发的问题。因此,需要开发一种既可以重复利用Swoole框架的高并发机制,又能利用Yaf框架的消息路由以及异常处理机制,从而提升高并发业务处理性能的方法。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的基于Swoole框架和Yaf框架的消息处理方法、基于Swoole框架和Yaf框架的消息处理装置、计算机存储介质以及计算设备。根据本专利技术实施例的一方面,提供了一种基于Swoole框架和Yaf框架的消息处理方法,包括:接收客户端发送的请求消息;将所述请求消息分配至Swoole框架的消息处理进程;利用所述消息处理进程调用Yaf框架对所述请求消息进行处理,并接收Yaf框架返回的处理结果;将所述处理结果返回给所述客户端。可选地,将所述请求消息分配至Swoole框架的消息处理进程,包括:将所述请求消息负载均衡地分配至Swoole框架的消息处理进程。可选地,将所述请求消息分配至Swoole框架的消息处理进程,进一步包括:通过Nginx反向代理将所述请求消息负载均衡地分配至Swoole框架的消息处理进程。可选地,利用所述消息处理进程调用Yaf框架对所述请求消息进行处理,包括:利用所述消息处理进程通过单例模式调用Yaf框架对所述请求消息进行处理。可选地,所述消息处理进程为Swoole框架的Worker进程。可选地,在接收Yaf框架返回的处理结果之后,所述方法还包括:根据所返回的处理结果判断是否出现Yaf运行错误;若是,对所述运行错误进行处理;若否,将所述处理结果返回给所述客户端。根据本专利技术实施例的另一方面,还提供了一种基于Swoole框架和Yaf框架的消息处理装置,包括:请求接收模块,适于接收客户端发送的请求消息;请求分配模块,适于将所述请求消息分配至Swoole框架的消息处理进程;Yaf框架调用模块,适于利用所述消息处理进程调用Yaf框架对所述请求消息进行处理,并接收Yaf框架返回的处理结果;以及结果返回模块,适于将所述处理结果返回给所述客户端。可选地,所述请求分配模块还适于:将所述请求消息负载均衡地分配至Swoole框架的消息处理进程。可选地,所述请求分配模块还适于:通过Nginx反向代理将所述请求消息负载均衡地分配至Swoole框架的消息处理进程。可选地,所述Yaf框架调用模块还适于:利用所述消息处理进程通过单例模式调用Yaf框架对所述请求消息进行处理。可选地,所述消息处理进程为Swoole框架的Worker进程。可选地,所述装置还包括:异常处理模块,适于在所述Yaf框架调用模块接收Yaf框架返回的处理结果之后,根据所返回的处理结果判断是否出现Yaf运行错误;若是,对所述运行错误进行处理;若否,触发所述结果返回模块将所述处理结果返回给所述客户端。根据本专利技术实施例的再一方面,还提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行根据上文中任一项所述的基于Swoole框架和Yaf框架的消息处理方法。根据本专利技术实施例的又一方面,还提供了一种计算设备,包括:处理器;以及存储有计算机程序代码的存储器;当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行根据上文中任一项所述的基于Swoole框架和Yaf框架的消息处理方法。本专利技术实施例提出的基于Swoole框架和Yaf框架的消息处理方法和装置,在接收到客户端发送的请求消息后,先将请求消息分配至Swoole框架的消息处理进程,进而利用该消息处理进程调用Yaf框架对请求消息进行处理并接收Yaf框架返回的处理结果,最终将处理结果返回给客户端,以完成一次消息业务处理流程。通过结合利用Swoole框架和Yaf框架进行消息处理,既可以重复利用Swoole框架的高并发机制,又能利用Yaf框架的规范化、流程化的消息路由以及异常处理机制,极大地加快了高并发下的消息处理速度,显著地提升了高并发下处理性能。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。根据下文结合附图对本专利技术具体实施例的详细描述,本领域技术人员将会更加明了本专利技术的上述以及其他目的、优点和特征。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本专利技术一实施例的基于Swoole框架和Yaf框架的本文档来自技高网
...

【技术保护点】
1.一种基于Swoole框架和Yaf框架的消息处理方法,包括:/n接收客户端发送的请求消息;/n将所述请求消息分配至Swoole框架的消息处理进程;/n利用所述消息处理进程调用Yaf框架对所述请求消息进行处理,并接收Yaf框架返回的处理结果;/n将所述处理结果返回给所述客户端。/n

【技术特征摘要】
1.一种基于Swoole框架和Yaf框架的消息处理方法,包括:
接收客户端发送的请求消息;
将所述请求消息分配至Swoole框架的消息处理进程;
利用所述消息处理进程调用Yaf框架对所述请求消息进行处理,并接收Yaf框架返回的处理结果;
将所述处理结果返回给所述客户端。


2.根据权利要求1所述的消息处理方法,其中,将所述请求消息分配至Swoole框架的消息处理进程,包括:
将所述请求消息负载均衡地分配至Swoole框架的消息处理进程。


3.根据权利要求2所述的消息处理方法,其中,将所述请求消息分配至Swoole框架的消息处理进程,进一步包括:
通过Nginx反向代理将所述请求消息负载均衡地分配至Swoole框架的消息处理进程。


4.根据权利要求1-3中任一项所述的消息处理方法,其中,利用所述消息处理进程调用Yaf框架对所述请求消息进行处理,包括:
利用所述消息处理进程通过单例模式调用Yaf框架对所述请求消息进行处理。


5.根据权利要求1-4中任一项所述的消息处理方法,其中,所述消息处理进程为Swoole框架的Worker进程。


6.根据权利要求1-5中任一项所述的消息处理方法,其中,在接收Yaf框架返回的处理结果之后,还包...

【专利技术属性】
技术研发人员:张歆明李金戈闫绍华
申请(专利权)人:北京奇虎科技有限公司
类型:发明
国别省市:北京;11

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

1