掌桥专利:专业的专利平台
掌桥专利
首页

请求处理方法、系统、设备和计算机存储介质

文献发布时间:2023-06-19 19:23:34


请求处理方法、系统、设备和计算机存储介质

技术领域

本申请涉及计算机技术领域,尤其涉及一种请求处理方法、系统、设备和计算机存储介质。

背景技术

Web应用框架(Web application framework)是一种开发框架,用来支持动态网站、网络应用程序及网络服务的开发。高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求,在WEB应用框架领域,存在着多种语言的实现,可以提供web容器的支持,但是在处理高并发时会产生时延。

目前,Web应用框架在高并发场景下,通常从硬件方面着手,提供机器配置来适应高并发请求。

然而现有的通过硬件方面的改进来适应高并发的场景的方式,造成了资源的浪费,增加了成本,不能有效提高请求处理的效率。

发明内容

本申请提供一种请求处理方法、系统、设备和计算机存储介质,以解决现有的通过硬件方面的改进来适应高并发的场景的方式,造成了资源的浪费,增加了成本,不能有效提高请求处理的效率的问题。

本申请的第一方面提供一种请求处理方法,包括:

响应于客户端发送的并发请求,通过请求接收线程接收所述并发请求;

对所述并发请求进行解析处理,得到至少一个任务;

将所述任务存储至任务队列中;

通过请求处理线程,对所述任务队列中的任务进行调用。

这里,本申请在应对高并发场景、处理并发请求时,通过请求接收线程接收并发请求,并将并发请求解析后存储至任务队列中,再通过请求处理线程实现对任务队列中任务的调用处理。其中,本申请中的Web应用框架在处理高并发请求时,分别配置独立的请求接收线程和请求处理线程,使用接收和处理线程异步输入/输出(Input/Output,IO)的方式,可以快速响应请求,减少任务阻塞带来的时延,提高了请求处理的效率,且无需增加多余的硬件,减少了资源的浪费,降低了成本。

可选地,在所述通过请求接收线程接收所述请求之前,还包括:

根据服务器的主机核数,配置请求接收线程。

这里,本申请可预先根据服务器自身的主机核数,配置请求接收线程,以保证服务器能够在高效、稳定的前提下,快速响应于客户端发送的请求并进行接收,减少了服务器因硬件限制而无法承载请求大量请求数量带来的时延,进一步地提高了请求处理的效率。

可选地,在所述通过请求处理线程,对所述任务队列中任务进行任务调用之前,还包括:

配置请求处理线程。

这里,本申请在处理任务之前,预先配置独立的请求处理线程,从而即使在处理请求的过程中发生阻塞,仍然可以接收请求,通过独立的请求接收线程和请求处理线程,可以实现在线程间的快速切换,快速响应请求,提高请求处理的效率。

可选地,所述配置请求处理线程包括:

配置请求处理线程,其中,所述请求处理线程配置有全双工通信协议接口、拦截器处理接口、模板引擎接口、序列化接口和反序列化接口中的至少一种。

其中,本申请的请求处理线程可配置有全双工通信协议接口、拦截器处理接口、模板引擎接口、序列化接口和反序列化接口,可提供WebSocket公功能,支持可配置拦截器与反向代理功能,留有JSON序列化、模板引擎接口等,在保证高并发与异步IO,提高系统运行效率的前提下,提供了的大量可定制化功能,扩展了Web应用框架的功能,进一步地提高了用户体验。

可选地,所述并发请求中携带有注解标签;

相应的,所述对所述请求进行解析处理,得到至少一个任务,包括:

识别所述并发请求中携带的至少一个注解标签;

将所述注解标签与预设解析接口标签进行比对,确定所述请求对应的解析接口;

根据所述解析接口,对所述并发请求进行扫描,得到至少一个任务。

这里,本申请可以在并发请求中添加注解标签,通过注解标签与预设解析接口标签进行比对,可以确定并发请求对应的类型,从而确定接口和界面,高效、快速地实现对并发请求的解析。

可选地,所述对所述任务队列中的任务进行调用,包括:

将所述注解标签与预设调用接口标签进行比对,确定所述请求对应的调用接口;

根据所述调用接口,对所述任务队列中的任务进行调用。

第二方面,本申请提供一种应用框架系统,包括:请求接收线程、任务队列和请求处理线程;

其中,所述请求接收线程用于响应于客户端发送的并发请求,请求接收线程接收所述并发请求;

所述任务队列用于存储对所述并发请求进行解析处理得到的至少一个任务;

所述请求处理线程用于对所述任务队列中的任务进行调用。

第三方面,本申请提供一种请求处理装置,包括:

接收模块,用于响应于客户端发送的并发请求,通过请求接收线程接收所述并发请求;

解析模块,用于对所述并发请求进行解析处理,得到至少一个任务;

存储模块,用于将所述任务存储至任务队列中;

调用模块,用于通过请求处理线程,对所述任务队列中的任务进行调用。

可选地,在所述接收模块通过请求接收线程接收所述请求之前,上述装置还包括:

第一配置模块,用于根据服务器的主机核数,配置请求接收线程。

可选地,在所述调用模块通过请求处理线程,对所述任务队列中任务进行任务调用之前,上述装置还包括:

第二配置模块,用于配置请求处理线程。

可选地,所述第二配置模块具体用于:

配置请求处理线程,其中,所述请求处理线程配置有全双工通信协议接口、拦截器处理接口、模板引擎接口、序列化接口和反序列化接口中的至少一种。

可选地,所述并发请求中携带有注解标签;

相应的,所述解析模块具体用于:

识别所述并发请求中携带的至少一个注解标签;

将所述注解标签与预设解析接口标签进行比对,确定所述请求对应的解析接口;

根据所述解析接口,对所述并发请求进行扫描,得到至少一个任务。

可选地,所述调用模块具体用于:

将所述注解标签与预设调用接口标签进行比对,确定所述请求对应的调用接口;

根据所述调用接口,对所述任务队列中的任务进行调用。

第四方面,本申请提供一种计算机设备,包括:至少一个处理器和存储器;

所述存储器存储计算机执行指令;

所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的请求处理方法。

第五方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的请求处理方法。

第六方面,本申请提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如上第一方面以及第一方面各种可能的设计所述的请求处理方法。

本申请提供一种请求处理方法、系统、设备和计算机存储介质,该方法在应对高并发场景、处理并发请求时,通过请求接收线程接收并发请求,并将并发请求解析后存储至任务队列中,再通过请求处理线程实现对任务队列中任务的调用处理。其中,本申请中的Web应用框架在处理高并发请求时,分别配置独立的请求接收线程和请求处理线程,使用接收和处理线程异步IO的方式,可以快速响应请求,减少任务阻塞带来的时延,提高了请求处理的效率,且无需增加多余的硬件,减少了资源的浪费,降低了成本。

附图说明

为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一示例性实施例示出的请求处理方法的应用场景图;

图2为本申请实施例提供的一种应用框架系统;

图3为本申请实施例提供的一种请求处理方法的流程示意图;

图4为本申请实施例提供的一种请求处理装置的结构示意图;

图5为本申请实施例提供的一种请求处理系统的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

在Web应用框架的应用过程中,浏览器从web服务器上使用超文本传输协议(HTTP,HyperText Transfer Protocol)下载网站,HTTP协议是基于一种请求-响应(request-response)模型的,客户端(浏览器)从运行在物理机器上的WEB应用请求数据,WEB应用对客户端浏览器发送的请求进行响应。目前,在WEB框架领域,存在着多种语言的实现,可以提供web容器的支持,例如Struts2,Struts2是一个基于视图-模型-控制器框架(Model ViewController,MVC)设计模式的Web应用框架,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互,这种框架实现了插件的可插拔,但是代码、功能臃肿,在处理请求时,服务器接收线程和处理线程是同一条线程,只能串行执行接收和处理请求的命令,若当前请求在处理过程中发生阻塞,将无法接收和处理其它请求,在处理高并发时会产生时延,在易用性方面存在巨大的局限。目前的WDB应用框架在高并发场景下,需要从硬件方面着手,提供机器配置,这将造成资源的极大浪费,增加了成本,不能有效提高请求处理的效率。

针对此缺陷,本申请的主要构思在于:分别配置独立的请求接收线程和请求处理线程,使用接收和处理线程异步IO的方式,可以快速响应请求采用异步事件驱动IO,提高请求并发处理能力。

图1是本申请一示例性实施例示出的请求处理方法的应用场景图。

如图1所示,本实施例提供的应用场景中包括客户端101和服务器102;其中,客户端101从服务器102上使用HTTP下载网站,客户端101从运行在服务器102的WEB应用请求数据,WEB应用对客户端浏览器发送的请求进行响应。可选地,客户端101可以但不限于包括手机、可穿戴设备以及计算机等设备;服务器102可实现Web应用框架功能。

可选地,图2为本申请实施例提供的一种应用框架系统,这里的应用框架系统可运行在图1所示的服务器102上,包括:请求接收线程201、任务队列202和请求处理线程203。

其中,请求接收线程用于响应于客户端发送的并发请求2011,请求接收线程接收并发请求。

任务队列用于存储对并发请求进行解析处理得到的至少一个任务。

请求处理线程用于对任务队列中的任务进行调用。

可选地,图3为本申请实施例提供的一种请求处理方法的流程示意图。本申请实施例的执行主体可以为图1中的服务器102,具体执行主体可以根据实际应用场景确定。如图3所示,该方法包括如下步骤:

S301:响应于客户端发送的并发请求,通过请求接收线程接收并发请求。

可选地,这里的并发请求可以为图1中的客户端101通过浏览器发出,这里的并发请求为Http请求。其格式可以为统一资源定位器(Uniform Resource Locator,URL)。

可选地,在通过请求接收线程接收请求之前,还包括:根据服务器的主机核数,配置请求接收线程。

可选地,在配置请求接收线程时,还可以预先确定并发请求的大小,根据并发请求的大小和主机核数的大小来配置请求接收线程,从而保证服务器的稳定、高效运行,也减少了资源浪费。

这里,本申请实施例可预先根据服务器自身的主机核数,配置请求接收线程,以保证服务器能够在高效、稳定的前提下,快速响应于客户端发送的请求并进行接收,减少了服务器因硬件限制而无法承载请求大量请求数量带来的时延,进一步地提高了请求处理的效率。

S302:对并发请求进行解析处理,得到至少一个任务。

这里,本申请实施例可在存在大量的并发请求时,将并发请求解析为单独的任务Task。

S303:将任务存储至任务队列中。

这里,任务队列用于缓存等待处理的任务,以便于请求处理线程进行处理,将任务进行缓存避免了并发请求过多造成的阻塞。

S304:通过请求处理线程,对任务队列中的任务进行调用。

可选地,在通过请求处理线程,对任务队列中任务进行任务调用之前,还包括:

配置请求处理线程。

可选地,配置请求处理线程包括:

配置请求处理线程,其中,请求处理线程配置有全双工通信协议接口、拦截器处理接口、模板引擎接口、序列化接口和反序列化接口中的至少一种。

可选地,请求处理线程可实现但不限于以下功能:

全双工通信协议接口Websocket Handler可以处理来自客户端的websocket连接与数据交互,将http协议升级为websocket协议,并保持连接,等待客户端的数据到来,或主动的发送实时数据。

拦截器处理接口Interceptor可以实现拦截器处理线程,用于进行请求的匹配拦截,实现请求前、后自定义事件处理。

Template为模板引擎接口,开发人员可以选择提供的网页渲染模板引擎,或定制化开发自己的模板引擎。

Encoder为Json序列化接口,开发人员可选择使用提供的Json序列化工具,或开发自己的。

Encoder为Json反序列化接口。

可选地,还可以增加静态文件缓存适配器、文件上传回调等功能。

其中,本申请实施例的请求处理线程可配置有全双工通信协议接口、拦截器处理接口、模板引擎接口、序列化接口和反序列化接口,可提供WebSocket公功能,支持可配置拦截器与反向代理功能,留有JSON序列化、模板引擎接口等,在保证高并发与异步IO,提高系统运行效率的前提下,提供了的大量可定制化功能,扩展了Web应用框架的功能,进一步地提高了用户体验。对请求处理线程配置不同的接口,采用模块化架构体系,可插拔地进行功能标准化,使用覆盖多种场景:WebSocket支持、静态文件服务器、拦截器、反向代理模块、自定义模板引擎、JSON序列化工具、文件断点上传与下载,方便开发人员的使用。

这里,本申请实施例在处理任务之前,预先配置独立的请求处理线程,从而即使在处理请求的过程中发生阻塞,仍然可以接收请求,通过独立的请求接收线程和请求处理线程,可以实现在线程间的快速切换,快速响应请求,提高请求处理的效率。

本申请实施例在应对高并发场景、处理并发请求时,通过请求接收线程接收并发请求,并将并发请求解析后存储至任务队列中,再通过请求处理线程实现对任务队列中任务的调用处理。其中,本申请实施例中的Web应用框架在处理高并发请求时,分别配置独立的请求接收线程和请求处理线程,使用接收和处理线程异步IO的方式,可以快速响应请求,减少任务阻塞带来的时延,提高了请求处理的效率,且无需增加多余的硬件,减少了资源的浪费,降低了成本。

在一种可能的实现方式中,本申请实施例可采用注解的方式来实现并发请求的解析,具体实现方式如下:

可选地,并发请求中携带有注解标签;相应的,对请求进行解析处理,得到至少一个任务,包括:识别并发请求中携带的至少一个注解标签;将注解标签与预设解析接口标签进行比对,确定请求对应的解析接口;根据解析接口,对并发请求进行扫描,得到至少一个任务。

可选地,注解标签可定义定义URL、参数类型、返回值类型、以及请求方式。

可选地,对任务队列中的任务进行调用,包括:将注解标签与预设调用接口标签进行比对,确定请求对应的调用接口;根据调用接口,对任务队列中的任务进行调用。

这里,本申请实施例可以在并发请求中添加注解标签,通过注解标签与预设解析接口标签进行比对,可以确定并发请求对应的类型,从而确定接口和界面,高效、快速地实现对并发请求的解析。

图4为本申请实施例提供的一种请求处理装置的结构示意图,如图4所示,本申请实施例的装置包括:接收模块401、解析模块402、存储模块403和调用模块404。这里的请求处理装置可以是上述服务器本身,或者是实现服务器的功能的芯片或者集成电路。这里需要说明的是,接收模块401、解析模块402、存储模块403和调用模块404的划分只是一种逻辑功能的划分,物理上两者可以是集成的,也可以是独立的。

其中,接收模块,用于响应于客户端发送的并发请求,通过请求接收线程接收并发请求;

解析模块,用于对并发请求进行解析处理,得到至少一个任务;

存储模块,用于将任务存储至任务队列中;

调用模块,用于通过请求处理线程,对任务队列中的任务进行调用。

可选地,在接收模块通过请求接收线程接收请求之前,上述装置还包括:

第一配置模块,用于根据服务器的主机核数,配置请求接收线程。

可选地,在调用模块通过请求处理线程,对任务队列中任务进行任务调用之前,上述装置还包括:

第二配置模块,用于配置请求处理线程。

可选地,第二配置模块具体用于:

配置请求处理线程,其中,请求处理线程配置有全双工通信协议接口、拦截器处理接口、模板引擎接口、序列化接口和反序列化接口中的至少一种。

可选地,并发请求中携带有注解标签;

相应的,解析模块具体用于:

识别并发请求中携带的至少一个注解标签;

将注解标签与预设解析接口标签进行比对,确定请求对应的解析接口;

根据解析接口,对并发请求进行扫描,得到至少一个任务。

可选地,调用模块具体用于:

将注解标签与预设调用接口标签进行比对,确定请求对应的调用接口;

根据调用接口,对任务队列中的任务进行调用。

图5为本申请实施例提供的一种请求处理系统的结构示意图,该请求处理系统可以为服务器。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不限制本文中描述的和/或者要求的本申请的实现。

如图5所示,该请求处理系统包括:处理器501和存储器502,各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器501可以对在请求处理系统内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。图5中以一个处理器501为例。

存储器502作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的请求处理系统的方法对应的程序指令/模块(例如,附图4所示的,接收模块401、解析模块402、存储模块403和调用模块404)。处理器501通过运行存储在存储器502中的非瞬时软件程序、指令以及模块,从而执行认证平台的各种功能应用以及数据处理,即实现上述方法实施例中的请求处理系统的方法。

请求处理系统还可以包括:输入装置503和输出装置504。处理器501、存储器502、输入装置503和输出装置504可以通过总线或者其他方式连接,图5中以通过总线连接为例。

输入装置503可接收输入的数字或字符信息,以及产生与请求处理系统的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置504可以是请求处理系统的显示设备等输出设备。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。

本申请实施例的请求处理系统,可以用于执行本申请上述各方法实施例中的技术方案,其实现原理和技术效果类似,此处不再赘述。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现上述任一项的请求处理方法。

本申请实施例还提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时,用于实现上述任一项的请求处理方法。

上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。

一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

技术分类

06120115891643