请求处理方法、装置、电子设备和存储介质制造方法及图纸

技术编号:37912453 阅读:9 留言:0更新日期:2023-06-21 22:35
本公开提出一种请求处理方法、装置、电子设备和存储介质,其中,方法包括:接收客户端发送的目标请求,并执行目标请求对应的程序;当程序执行到第一指定切入点时,查询与第一指定切入点匹配的目标切入点插件对应的功能插件列表,目标切入点插件对应的切面指定有第一指定切入点,第一指定切入点为目标切入点插件对应的技术栈的切入位置;依次调用功能插件列表中的各功能插件,以执行各功能插件对应的函数方法,得到目标请求的处理结果;向客户端返回处理结果。由此,通过提供一种插件式的切面编程方法,将常用技术栈的拦截逻辑封装为切入点插件,形成基础设施,研发人员仅需专注于实现拦截后要完成的功能即可,避免重复编写拦截各技术栈的代码。技术栈的代码。技术栈的代码。

【技术实现步骤摘要】
请求处理方法、装置、电子设备和存储介质


[0001]本公开涉及互联网
,尤其涉及一种请求处理方法、装置、设备和介质。

技术介绍

[0002]目前在开发不同系统的公共功能时,经常需要拦截一些常见的技术栈,以监控一些外部交互操作。比如,当公共功能为日志打印时,需要拦截或监控一些外部交互操作,以监控并记录日志信息,自动打印入参出参;再例如,当公共功能为方法监控时,需要拦截或监控外部交互操作,自动进行方法耗时和方法可用率的监控;又例如,当公共功能为链路追踪时,需要拦截或监控外部交互操作,在调用开始和结束时进行链路追踪相关操作。
[0003]相关技术中,通过研发人员针对不同的系统,依次开发代码拦截各技术栈。
[0004]然而,很多功能都需要拦截常用的技术栈,上述方式将造成同一技术栈在不同系统中重复拦截的情况,即研发人员需要针对不同的系统,开发同一技术栈对应的代码,严重增加了研发人员的工作量。

技术实现思路

[0005]本公开旨在至少在一定程度上解决相关技术中的技术问题之一。
[0006]为此,本公开提出一种请求处理方法、装置、电子设备和存储介质,以实现通过提供一种插件式的切面编程方法,将常用技术栈的拦截逻辑(切入位置)封装为切入点插件,形成基础设施,研发人员仅需专注于实现拦截后要完成的功能即可,避免重复编写拦截各技术栈的代码,降低研发人员的工作量。
[0007]本公开第一方面实施例提出了一种请求处理方法,包括:
[0008]接收客户端发送的目标请求,并执行所述目标请求对应的程序;
[0009]当所述程序执行到第一指定切入点时,查询与所述第一指定切入点匹配的目标切入点插件对应的功能插件列表;其中,所述目标切入点插件对应的切面指定有所述第一指定切入点,所述第一指定切入点为所述目标切入点插件对应的技术栈的切入位置;
[0010]依次调用所述功能插件列表中的各功能插件,以执行各所述功能插件对应的函数方法,得到所述目标请求的处理结果;
[0011]向所述客户端返回所述处理结果。
[0012]本公开第二方面实施例提出了一种请求处理装置,包括:
[0013]处理模块,用于接收客户端发送的目标请求,并执行所述目标请求对应的程序;
[0014]查询模块,用于当所述程序执行到第一指定切入点时,查询与所述第一指定切入点匹配的目标切入点插件对应的功能插件列表;其中,所述目标切入点插件对应的切面指定有所述第一指定切入点,所述第一指定切入点为所述目标切入点插件对应的技术栈的切入位置;
[0015]执行模块,用于依次调用所述功能插件列表中的各功能插件,以执行各所述功能插件对应的函数方法,得到所述目标请求的处理结果;
[0016]发送模块,用于向所述客户端返回所述处理结果。
[0017]本公开第三方面实施例提出了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如本公开上述第一方面实施例所述的方法。
[0018]本公开第四方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如本公开上述第一方面实施例所述的方法。
[0019]本公开第五方面实施例提出了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如本公开上述第一方面实施例所述的方法。
[0020]本公开实施例所提供的技术方案包含如下的有益效果:
[0021]接收客户端发送的目标请求,并执行目标请求对应的程序;当程序执行到第一指定切入点时,查询与第一指定切入点匹配的目标切入点插件对应的功能插件列表,其中,目标切入点插件对应的切面指定有第一指定切入点,第一指定切入点为目标切入点插件对应的技术栈的切入位置;依次调用功能插件列表中的各功能插件,以执行各功能插件对应的函数方法,得到目标请求的处理结果;向客户端返回处理结果。由此,通过提供一种插件式的切面编程方法,将常用技术栈的拦截逻辑(切入位置)封装为切入点插件,形成基础设施,研发人员仅需专注于实现拦截后要完成的功能即可,避免重复编写拦截各技术栈的代码,降低研发人员的工作量。
[0022]本公开附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。
附图说明
[0023]本公开上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0024]图1为本公开实施例所提供的一种请求处理方法的流程示意图;
[0025]图2为本公开实施例所提供的另一种请求处理方法的流程示意图;
[0026]图3为本公开实施例所提供的另一种请求处理方法的流程示意图;
[0027]图4为本公开实施例所提供的另一种请求处理方法的流程示意图;
[0028]图5为用于实现本公开原理的请求处理系统的结构示意图;
[0029]图6为本公开的执行流程示意图;
[0030]图7为本公开的详细执行流程示意图;
[0031]图8为本公开实施例所提供的另一种请求处理方法的流程示意图;
[0032]图9为本公开实施例所提供的一种请求处理装置的结构示意图;
[0033]图10示出了适于用来实现本公开实施方式的示例性电子设备的框图。
具体实施方式
[0034]下面详细描述本公开的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本公开,而不能理解为对本公开的限制。
[0035]相关技术中,可以通过以下几种方式,拦截常用技术栈:
[0036]第一,通过技术栈提供的拦截器API(application program interface,应用程序接口),拦截常用技术栈;
[0037]第二,通过Spring AOP(Aspect Oriented Programming,面向切面编程)提供的动态代理方式,拦截常用技术栈;
[0038]第三,通过字节码修改方式,拦截常用技术栈。
[0039]然而上述方式,至少存在以下问题:
[0040]1、技术门槛高:技术栈提供的拦截器API和Spring AOP提供的动态代理方式的拦截范围有限制,无法覆盖全部的技术栈,而字节码修改方式存在一定的技术难度,门槛较高;
[0041]2、工作量大:对常用技术栈进行拦截时,需了解各个技术栈的调用流程,复杂繁琐;
[0042]3、重复工作量:很多功能都需要拦截常用技术栈,每个技术栈在不同系统间重复拦截,造成重复工作量。
[0043]针对上述存在的至少一种问题,本公开提出了一种请求处理方法、装置、电子设备和存储介质。
[0044]下面参考附图描述本公开实施例的请求处理方法、装置、电子设备和存储介质。
...

【技术保护点】

【技术特征摘要】
1.一种请求处理方法,其特征在于,所述方法包括:接收客户端发送的目标请求,并执行所述目标请求对应的程序;当所述程序执行到第一指定切入点时,查询与所述第一指定切入点匹配的目标切入点插件对应的功能插件列表;其中,所述目标切入点插件对应的切面指定有所述第一指定切入点,所述第一指定切入点为所述目标切入点插件对应的技术栈的切入位置;依次调用所述功能插件列表中的各功能插件,以执行各所述功能插件对应的函数方法,得到所述目标请求的处理结果;向所述客户端返回所述处理结果。2.根据权利要求1所述的方法,其特征在于,所述当所述程序执行到第一指定切入点时,查询与所述第一指定切入点匹配的目标切入点插件对应的功能插件列表,包括:当所述程序执行到所述第一指定切入点时,确定与所述第一指定切入点匹配的目标切入点插件;根据所述目标切入点插件的第一类型,查询类型与功能插件之间的映射关系,以确定与所述第一类型匹配的各功能插件;根据与所述第一类型匹配的各功能插件,确定所述目标切入点插件对应的功能插件列表。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:获取新增功能插件;其中,所述新增功能插件中指定有需监听的切入点插件;通过所述新增功能插件对应的注册切面,对所述新增功能插件的实例进行实例化;调用功能插件注册方法,对所述新增功能插件进行注册,其中,所述功能插件注册方法,用于获取所述新增功能插件监听的切入点插件的第二类型,并根据所述第二类型与所述新增功能插件,更新所述映射关系。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取新增切入点插件,其中,所述新增切入点插件对应的切面指定有所述新增切入点插件对应的第二指定切入点,所述第二指定切入点为所述新增切入点插件对应的技术栈的切入位置。5.根据权利要求1所述的方法,其特征在于,所述依次调用所述功能插件列表中的各功能插件,并执行各所述功能插件对应的函数方法,以得到所述目标请求的处理结果,包括:针对依次调用的每个所述功能插件,执行所述功能插件对应的第一函数方法;在所述第一函数方法指示继续执行后续函数方法的情况下,依次执行所述程序对应的原函数方法和所述功能插件对应的第二函数方法;其中,所述第一函数方法为在所述原函数方法之前需执行的函数方法,所述第二函数方法为在所述原函数方法之后需执行的函数方法;在所述第一函数方法指示停止执行后续函数方法的情况下,停止执行所述原函数方法,以及停止执行所述功能插件列表中的后续功能插件;根据各所述功能插件对应的函数方法的执行结果以及所述原函数方法的执行结果,确定所述目标请求的处理结果。6.根据权利要求1

5中任一项所述的方法,其特征在于,所述方法还包括:添加依赖,其中,所述依赖包括各切入点插件的依赖和各功能插件的依赖;
添加配置文件,其中,所述配置文件中包括各切入点插件对应的切面以及各功能插件对应的注册切面;响应于所述配置文件添加完成及依赖添加完成,添加运行环境的启动参数,以接入所述运行环境。7.一种请求处理装置,其特征在于,所述装置包括:处理模块,用于接收客户端发送的目标请求,并执行所述目标请求对应的程序;查询模块,用于当所述程序执行到第一指定切入点时,查询与所述第一指定切入点匹配的目标切入点插件对应的功能插件列表;其中,所...

【专利技术属性】
技术研发人员:李凯昊柳晛
申请(专利权)人:上海京东到家元信信息技术有限公司
类型:发明
国别省市:

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

1