一种基于异步事件驱动的非阻塞Restful通信方法、装置和设备制造方法及图纸

技术编号:21974761 阅读:32 留言:0更新日期:2019-08-28 02:11
本申请公开了一种基于异步事件驱动的非阻塞Restful通信方法、装置和设备,方法包括:101、构建Reactor多线程模型;102、在Reactor多线程模型中分配一个线程,用于接收若干个客户端发送的请求事件;103、根据请求事件生成若干个处理任务,将若干个处理任务同时分发到若干个不同的业务逻辑单元,使得业务逻辑单元完成对处理任务的处理。解决了现有的Restful服务通信方式在处理高并发数据时,需要创建大量的线程来处理连接,系统资源占用较大,存在内存溢出导致系统崩溃的风险的技术问题。

A Non-blocking Restful Communication Method, Device and Device Based on Asynchronous Event Driven

【技术实现步骤摘要】
一种基于异步事件驱动的非阻塞Restful通信方法、装置和设备
本申请涉及通信网
,尤其涉及一种基于异步事件驱动的非阻塞Restful通信方法、装置和设备。
技术介绍
REST(RepresentationStateTransfer的简称)是一组架构约束条件和原则,满足这些约束和原则的应用程序或涉及就是Restful。目前主流的三种Web服务交互方案中,REST相比于SOAP(SimpleObjectAccessprotocol,简单对象访问协议)以及XML-RPC更加简单明了,无论是对URL的处理还是对Payload的编码,REST都倾向于用更加简单轻量的方法设计和实现。目前,Restful服务实现方式是通过struts、springMVC等Web框架部署到tomcat容器,现有的Restful框架的处理流程图如图1所示,在图1中,客户端向服务端发送服务请求,服务端接收到客户端的请求后,依次执行读取用户请求服务相关数据,解码数据,处理业务逻辑,编码数据,写相应数据,相应客户端请求的处理,一个用户请求需要一条线程处理,并且整个交互过程在线程上串行执行,如果执行过程中任何一个任务出现阻塞,这个线程将会被挂起,如果用于高并发的系统中,将启动大量线程来处理诸多的用户请求,由于系统的资源是有限的,在系统的线程数达到一定数量时,将出现内存溢出,导致系统崩溃的问题。
技术实现思路
本申请提供了一种基于异步事件驱动的非阻塞Restful通信方法、装置和设备,用于解决现有的Restful服务通信方式在处理高并发数据时,需要创建大量的线程来处理连接,系统资源占用较大,存在内存溢出导致系统崩溃的风险的技术问题。有鉴于此,本申请第一方面提供了一种基于异步事件驱动的非阻塞Restful通信方法,包括以下步骤:101、构建Reactor多线程模型;102、在所述Reactor多线程模型中分配一个线程,用于接收若干个客户端发送的请求事件;103、根据所述请求事件生成若干个处理任务,将所述若干个处理任务同时分发到若干个不同的业务逻辑单元,使得所述业务逻辑单元完成对所述处理任务的处理。优选地,步骤103具体包括:1031、根据所述请求事件生成读取数据任务、解码数据任务、处理业务逻辑任务、编码数据任务和写响应数据任务;1032、分别将所述读取数据任务、所述解码数据任务、所述处理业务逻辑任务、所述编码数据任务和所述写响应数据任务同时分发到对应的业务逻辑单元;1033、获取每个所述业务逻辑单元的任务处理结果。优选地,在处理所述解码数据和所述编码数据时,通过过滤器实现对数据的反序列化与序列化。优选地,所述在处理所述解码数据和所述编码数据时,通过过滤器实现对数据的反序列化与序列化具体包括:在处理所述解码数据时,通过所述过滤器将JSON数据转化成业务处理数据对象,在处理所述编码数据时,通过所述过滤器将所述业务处理数据对象序列化成JSON数据格式的字符串。本申请第二方面还提供了一种基于异步事件驱动的非阻塞Restful通信装置,包括以下模块:建模模块,用于构建Reactor多线程模型;监听模块,用于在所述Reactor多线程模型中分配一个线程,用于接收若干个客户端发送的请求事件;并发处理模块,用于根据所述请求事件生成若干个处理任务,将所述若干个处理任务同时分发到若干个不同的业务逻辑单元,使得所述业务逻辑单元完成对所述处理任务的处理。优选地,所述并发处理模块具体包括:第一处理子模块,用于根据所述请求事件生成读取数据任务、解码数据任务、处理业务逻辑任务、编码数据任务和写响应数据任务;第二处理子模块,用于分别将所述读取数据任务、所述解码数据任务、所述处理业务逻辑任务、所述编码数据任务和所述写响应数据任务同时分发到对应的业务逻辑单元;第三处理子模块,用于获取每个所述业务逻辑单元的任务处理结果。优选地,所述第二处理子模块包括:过滤模块;所述过滤模块,用于在处理所述解码数据和所述编码数据时,对所述解码数据和所述编码数据进行反序列化与序列化。优选地,所述过滤模块具体用于:在处理所述解码数据时,将JSON数据转化成业务处理数据对象,在处理所述编码数据时,将所述业务处理数据对象序列化成JSON数据格式的字符串。本申请第三方面还提供了一种基于异步事件驱动的非阻塞Restful通信设备,所述设备包括处理器以及存储器:所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;所述处理器用于根据所述程序代码中的指令执行第一方面所述的基于异步事件驱动的非阻塞Restful通信方法。一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行第一方面所述的基于异步事件驱动的非阻塞Restful通信方法。从以上技术方案可以看出,本申请实施例具有以下优点:本申请中,提供了一种基于异步事件驱动的非阻塞Restful通信方法,包括以下步骤:101、构建Reactor多线程模型;102、在Reactor多线程模型中分配一个线程,用于接收若干个客户端发送的请求事件;103、根据请求事件生成若干个处理任务,将若干个处理任务同时分发到若干个不同的业务逻辑单元,使得业务逻辑单元完成对处理任务的处理。本申请提供的基于异步事件驱动的肺阻塞Restful通信方法,在构建的Reactor多线程模型中分配一个线程,实时监听用户的连接请求,在接收到客户端发动的请求事件后,将客户端的请求拆分成多个子任务,分别使用不同的线程执行,所有客户端的请求均通过同一条线程进行处理,不需要对每个客户端的请求都使用一个线程进行处理,节省了系统资源;每个线程处理客户端请求的任务也由串行处理转为并行处理,能够提高系统的并发量;解决了现有的Restful服务通信方式在处理高并发数据时,需要创建大量的线程来处理连接,系统资源占用较大,存在内存溢出导致系统崩溃的风险的技术问题。附图说明图1为现有技术中的Restful框架的处理流程图;图2为本申请提供的一种基于异步事件驱动的非阻塞Restful通信方法的一个实施例的流程示意图;图3为本申请提供的一种基于异步事件驱动的非阻塞Restful通信方法的另一个实施例的流程示意图;图4为本申请提供的一种基于异步事件驱动的非阻塞Restful通信装置的一个实施例的结构示意图;图5为本申请提供的一种基于异步事件驱动的非阻塞Restful通信框架图。具体实施方式为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。为了便于理解,请参阅图2,本申请提供的一种基于异步事件驱动的非阻塞Restful通信方法的一个实施例,包括以下步骤:步骤101、构建Reactor多线程模型。需要说明的是,本申请实施例中,首先需要构建Reactor多线程模型。步骤102、在Reactor多线程模型中分配一个线程,用于接收若干个客户端发送的请求事件。需要说明的是,本申请实施例中,在Reactor多线程模型分配一个线程,即Acc本文档来自技高网
...

【技术保护点】
1.一种基于异步事件驱动的非阻塞Restful通信方法,其特征在于,包括以下步骤:101、构建Reactor多线程模型;102、在所述Reactor多线程模型中分配一个线程,用于接收若干个客户端发送的请求事件;103、根据所述请求事件生成若干个处理任务,将所述若干个处理任务同时分发到若干个不同的业务逻辑单元,使得所述业务逻辑单元完成对所述处理任务的处理。

【技术特征摘要】
1.一种基于异步事件驱动的非阻塞Restful通信方法,其特征在于,包括以下步骤:101、构建Reactor多线程模型;102、在所述Reactor多线程模型中分配一个线程,用于接收若干个客户端发送的请求事件;103、根据所述请求事件生成若干个处理任务,将所述若干个处理任务同时分发到若干个不同的业务逻辑单元,使得所述业务逻辑单元完成对所述处理任务的处理。2.根据权利要求1所述的基于异步事件驱动的非阻塞Restful通信方法,其特征在于,步骤103具体包括:1031、根据所述请求事件生成读取数据任务、解码数据任务、处理业务逻辑任务、编码数据任务和写响应数据任务;1032、分别将所述读取数据任务、所述解码数据任务、所述处理业务逻辑任务、所述编码数据任务和所述写响应数据任务同时分发到对应的业务逻辑单元;1033、获取每个所述业务逻辑单元的任务处理结果。3.根据权利要求2所述的基于异步事件驱动的非阻塞Restful通信方法,其特征在于,在处理所述解码数据和所述编码数据时,通过过滤器实现对数据的反序列化与序列化。4.根据权利要求3所述的基于异步事件驱动的非阻塞Restful通信方法,其特征在于,所述在处理所述解码数据和所述编码数据时,通过过滤器实现对数据的反序列化与序列化具体包括:在处理所述解码数据时,通过所述过滤器将JSON数据转化成业务处理数据对象,在处理所述编码数据时,通过所述过滤器将所述业务处理数据对象序列化成JSON数据格式的字符串。5.一种基于异步事件驱动的非阻塞Restful通信装置,其特征在于,包括以下模块:建模模块,用于构建Reactor多线程模型;监听模块,用于在所述Reactor多线程模型中分配一个线程,用于接收若干个客户端发送的请求事件;并发处理模块,用于根据...

【专利技术属性】
技术研发人员:莫文盼邹送华
申请(专利权)人:东信和平科技股份有限公司
类型:发明
国别省市:广东,44

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

1