数据获取方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:34423637 阅读:12 留言:0更新日期:2022-08-06 15:51
本申请涉及一种数据获取方法、装置、计算机设备和存储介质。所述方法包括:接收并发的远程过程调用请求;对各所述远程过程调用请求中的请求参数进行聚合运算,得到聚合关键字;根据所述聚合关键字对请求相同数据的远程过程调用请求进行过滤,得到目标远程过程调用请求;基于所述目标远程过程调用请求执行目标远程过程调用通信;所述目标远程过程调用通信,用于从远端获取与所述目标远程过程调用请求对应的数据;将从所述远端获取的数据向所述远程过程调用请求的发送方进行分发。采用本方法能够缓解大量远程过程调用请求所造成的网络压力。压力。压力。

【技术实现步骤摘要】
数据获取方法、装置、计算机设备和存储介质


[0001]本申请涉及计算机
,特别是涉及一种数据获取方法、装置、计算机设备和存储介质。

技术介绍

[0002]随着计算机技术的发展,网络编程成为了技术人员必不可少的技能之一,但是大量的网络编程使得代码的复用率很低,并且使得代码难以维护,所以诞生了远程过程调用(Remote Procedure Call,RPC),RPC屏蔽了网络通信底层的细节问题,使得每个网络开发人员都可以像使用本地调用那样去进行网络通信。
[0003]现有RPC应用程序的扩展基本上是采用插件的方式,比如为了缓解网络压力而扩展的缓存业务,在RPC应用程序执行的过程中,通过RPC应用程序的RPC通信模块前后预留的插槽钩子,调用并执行用户预先自定义的缓存插件组,从而实现对RPC应用程序的缓存业务扩展。其中,插件组包括前缓存插件和后缓存插件,前缓存插件与应用程序的RPC通信模块前预留的插槽钩子对应,后缓存插件与应用程序的RPC通信模块后预留的插槽钩子对应。
[0004]然而上述缓存业务扩展的方式由于需要在RPC通信模块前后分别调用缓存插件组中对应的插件,也就是说缓存业务必须在RPC通信成功之后才能实现,那么在基于某个数据请求而进行RPC通信的过程中,若接收到大量的与该数据请求相同的其他数据请求时,仍然需要针对与该数据请求相同的其他数据请求分别进行RPC通信,导致无法有效地缓解大量的数据请求所造成的网络压力。

技术实现思路

[0005]基于此,有必要针对上述技术问题,提供一种能够缓解网络压力的数据获取方法、装置、计算机设备和存储介质。
[0006]一种数据获取方法,所述方法包括:
[0007]接收并发的远程过程调用请求;
[0008]对各所述远程过程调用请求中的请求参数进行聚合运算,得到聚合关键字;
[0009]根据所述聚合关键字对请求相同数据的远程过程调用请求进行过滤,得到目标远程过程调用请求;
[0010]基于所述目标远程过程调用请求执行目标远程过程调用通信;所述目标远程过程调用通信,用于从远端获取与所述目标远程过程调用请求对应的数据;
[0011]将从所述远端获取的数据向所述远程过程调用请求的发送方进行分发。
[0012]在一个实施例中,所述方法应用于代理服务器;所述发送方为不同的终端;所述并发的远程过程调用请求包括以下至少之一:不同的所述终端在同一时刻分别发送的远程过程调用请求,以及不同所述终端在所述代理服务器的预设反应时长内分别发送的远程过程调用请求。
[0013]在一个实施例中,所述方法应用于终端;所述发送方为运行于所述终端上的不同
进程;所述并发的远程过程调用请求包括以下至少之一:不同的所述进程在同一时刻分别发送的远程过程调用请求,以及不同所述进程在所述终端的预设反应时长内分别发送的远程过程调用请求。
[0014]在一个实施例中,所述远程过程调用请求包括在客户端触发的多媒体数据获取请求;从所述远端获取的数据包括多媒体数据;所述将从所述远端获取的数据向所述远程过程调用请求的发送方进行分发之后,所述方法还包括:
[0015]通过所述进程对所接收的多媒体数据进行整合,得到整合后的多媒体数据;
[0016]将所述整合后的多媒体数据返回至所述客户端,以在所述客户端的前端页面展示所述整合后的多媒体数据。
[0017]一种数据获取装置,所述装置包括:
[0018]请求接收模块,用于接收并发的远程过程调用请求;
[0019]运算模块,用于对各所述远程过程调用请求中的请求参数进行聚合运算,得到聚合关键字;
[0020]请求过滤模块,用于根据所述聚合关键字对请求相同数据的远程过程调用请求进行过滤,得到目标远程过程调用请求;
[0021]通信模块,用于基于所述目标远程过程调用请求执行目标远程过程调用通信;所述目标远程过程调用通信,用于从远端获取与所述目标远程过程调用请求对应的数据;
[0022]数据分发模块,用于将从所述远端获取的数据向所述远程过程调用请求的发送方进行分发。
[0023]在一个实施例中,所述运算模块,还用于:
[0024]确定所述远程过程调用请求的请求类型;
[0025]基于所述请求类型提取所述远程过程调用请求中的请求参数;
[0026]通过远程过程调用中间件对提取的各请求参数进行哈希运算,得到聚合关键字。
[0027]在一个实施例中,所述远程过程调用中间件包括聚合中间件和缓存中间件;所述聚合关键字是所述聚合中间件对提取的各请求参数进行哈希运算所得;所述运算模块,还用于:
[0028]通过所述缓存中间件确定未缓存与所述远程过程调用请求对应的数据;
[0029]当从所述远端获取到与所述目标远程过程调用请求对应的数据时,则通过所述缓存中间件将从所述远端获取的数据进行缓存。
[0030]在一个实施例中,所述运算模块,还用于:
[0031]通过所述缓存中间件确定缓存了与所述远程过程调用请求对应的数据;
[0032]获取缓存的与所述远程过程调用请求对应的数据;
[0033]将获取的数据向所述远程过程调用请求的发送方进行分发。
[0034]在一个实施例中,所述聚合中间件和所述缓存中间件均配置了前置逻辑和后置逻辑;所述缓存中间件的前置逻辑,用于检测缓存空间中是否缓存了与所述远程过程调用请求对应的数据;所述缓存中间件的后置逻辑,用于当从所述远端获取到数据时,对从所述远端获取到的数据进行缓存;所述聚合中间件的前置逻辑,用于对各所述远程过程调用请求中的请求参数进行哈希运算,以及根据所述聚合关键字对请求相同数据的远程过程调用请求进行过滤,得到目标远程过程调用请求;所述聚合中间件的后置逻辑,用于将从所述远端
获取到的数据进行分发。
[0035]在一个实施例中,所述运算模块,还用于:
[0036]当未存储中间件列表,或存储了所述中间列表但表中不包含中间件信息时,则直接基于所述远程过程调用请求执行对应的远程过程调用通信,以从所述远端获取与所述远程过程调用请求对应的数据;
[0037]当存储了所述中间列表且表中包含中间件信息时,按照中间件顺序依次执行所述缓存中间件的前置逻辑和所述聚合中间件的前置逻辑;以及,在从所述远端获取到数据时,按照中间件逆顺序依次执行所述聚合中间件的后置逻辑和所述缓存中间件的后置逻辑。
[0038]在一个实施例中,所述请求过滤模块,还用于:
[0039]根据所述聚合关键字对所述远程过程调用请求进行分组;同一所述分组中的远程过程调用请求所请求的数据相同;
[0040]对每个所述分组中的远程过程调用请求进行过滤,得到与每个所述分组对应的目标远程过程调用请求。
[0041]在一个实施例中,所述通信模块,还用于:
[0042]若处于执行状态的远程过程调用通信中不存在与所述目标远程过程调用请求的聚合关键字匹配的通本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据获取方法,其特征在于,所述方法包括:接收并发的远程过程调用请求;对各所述远程过程调用请求中的请求参数进行聚合运算,得到聚合关键字;根据所述聚合关键字对请求相同数据的远程过程调用请求进行过滤,得到目标远程过程调用请求;基于所述目标远程过程调用请求执行目标远程过程调用通信;所述目标远程过程调用通信,用于从远端获取与所述目标远程过程调用请求对应的数据;将从所述远端获取的数据向所述远程过程调用请求的发送方进行分发。2.根据权利要求1所述的方法,其特征在于,所述对各所述远程过程调用请求中的请求参数进行聚合运算,得到聚合关键字包括:确定所述远程过程调用请求的请求类型;基于所述请求类型提取所述远程过程调用请求中的请求参数;通过远程过程调用中间件对提取的各请求参数进行哈希运算,得到聚合关键字。3.根据权利要求2所述的方法,其特征在于,所述远程过程调用中间件包括聚合中间件和缓存中间件;所述聚合关键字是所述聚合中间件对提取的各请求参数进行哈希运算所得;所述方法还包括:通过所述缓存中间件确定未缓存与所述远程过程调用请求对应的数据;当从所述远端获取到与所述目标远程过程调用请求对应的数据时,则通过所述缓存中间件将从所述远端获取的数据进行缓存。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:通过所述缓存中间件确定缓存了与所述远程过程调用请求对应的数据;获取缓存的与所述远程过程调用请求对应的数据;将获取的数据向所述远程过程调用请求的发送方进行分发。5.根据权利要求3或4所述的方法,其特征在于,所述聚合中间件和所述缓存中间件均配置了前置逻辑和后置逻辑;所述缓存中间件的前置逻辑,用于检测缓存空间中是否缓存了与所述远程过程调用请求对应的数据;所述缓存中间件的后置逻辑,用于当从所述远端获取到数据时,对从所述远端获取到的数据进行缓存;所述聚合中间件的前置逻辑,用于对各所述远程过程调用请求中的请求参数进行哈希运算,以及根据所述聚合关键字对请求相同数据的远程过程调用请求进行过滤,得到目标远程过程调用请求;所述聚合中间件的后置逻辑,用于将从所述远端获取到的数据进行分发。6.根据权利要求5所述的方法,其特征在于,所述接收并发的远程过程调用请求之后,所述方法还包括:当未存储中间件列表,或存储了所述中间列表但表中不包含中间件信息时,则直接基于所述远程过程调用请求执行对应的远程过程调用通信,以从所述远端获取与所述远程过程调用请求对应的数据;当存储了所述中间列表且表中包含中间件信息时,按照中间件顺序依次执行所述缓存中间件的前置逻辑和所述聚合中间件的前置逻辑;以及,在从所述远端获取到数据时,按照中间件逆顺序依次执行所述聚合中间件的后置逻辑和所述缓存中间件的后置逻辑。7.根据权利要求1所述的方法,其特征在于,所述根据所述聚合关键字对请求相同数据
的远程过程调用请求进行过滤,得到目标远程过程调用请求包括:根据所述聚合关键字对所述远程过程调用请求进行分组;同一所述分组中的远程过程调用请求所请求的数据相同;对每个所述分组中的远程过程调用请求进行过滤,得到与每个所述分组对应的目标远程过程调用请求。8.根据权利要求1所述的方法,其特征在于,所述基于所述目标远程过程调用请求执行目标远程过程调用通信,包括:若处于执行状...

【专利技术属性】
技术研发人员:吴沛霖
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1