基于API网关的远程过程调用处理方法和装置制造方法及图纸

技术编号:37507549 阅读:11 留言:0更新日期:2023-05-07 09:45
本申请公开一种基于API网关的远程过程调用处理方法和装置,API网关根据API接口对应的微服务元数据信息生成对微服务的RPC接口方法的RPC调用请求,拦截RPC调用请求的输入参数值,根据输入参数属性指示的启用输入参数的引用传递的指示,将输入参数值写入分布式缓存,基于引用传递标识和输入参数值的访问地址信息生成替代输入参数值的替代输入参数,传输给微服务;微服务拦截替代输入参数,当识别到替代输入参数中的引用传递标识时,基于访问地址信息从分布式缓存读取输入参数值。本申请可以降低API网关与微服务之间的数据传输,提高客户端通过API网关访问包含大数据处理的微服务的性能和服务质量。的性能和服务质量。的性能和服务质量。

【技术实现步骤摘要】
基于API网关的远程过程调用处理方法和装置


[0001]本申请涉及计算机
,具体而言,涉及一种基于API网关的远程过程调用处理方法和装置。

技术介绍

[0002]随着分布式和微服务技术的发展,基于微服务架构的API网关(API Gateway)得到了广泛的应用。API网关是实现对后端的微服务接口调用的统一入口,对来自应用客户端的访问请求进行路由、负载均衡、协议转换、访问控制和流量限制等处理,从而向各应用客户端隐藏后端微服务的接口服务,使得隐藏在 API 网关后面的各微服务可以专注于业务服务,而不用去处理如负载均衡、协议转换、访问控制和流量限制等基础功能,也提高了系统的可维护性和扩展性。由于基于远程过程调用(RPC)的微服务接口调用协议,如gRPC、Protobuf、Dubbo等在性能上的优点,实际应用中可以在API网关中使用这些RPC协议实现对后端微服务的接口调用,从而通过将应用客户端的HTTP协议的接口请求转换为对后端微服务的RPC接口调用,实现对微服务的服务调用。
[0003]上述RPC接口调用是采用客户端/服务端(C/S)模式,通过网络协议在作为客户端的API网关上实现对远程计算机的微服务中的方法的远程调用,这种远程调用主要是通过传递参数值(输入参数值和输出参数值)的方式进行,一般不支持直接传递参数的引用,即使作为客户端的API网关想要通过传递参数的引用的方式实现远程过程调用,实质也是需要传递参数值的副本给作为服务端的微服务。然而,在涉及大数据处理等的数据密集型应用的场景下,如果通过API网关实现对包含大数据处理的微服务的RPC接口调用,将导致API网关与后端微服务之间的大量的数据传输,从而影响了应用客户端通过API网关访问后端微服务的性能和服务质量。

技术实现思路

[0004]有鉴于此,本申请提出一种基于API网关的远程过程调用处理方法和装置,能够在数据密集型应用的场景下,显著降低API网关与后端的微服务之间RPC调用导致的大量的数据传输,提高应用客户端通过API网关访问后端微服务的性能和服务质量。
[0005]第一方面,本申请提出一种基于API网关的远程过程调用处理方法,包括:响应于接收到客户端对第一API接口的访问请求,API网关根据所述第一API接口对应的第一微服务元数据信息生成对目标微服务的第一RPC接口方法的第一RPC调用请求,所述第一微服务元数据信息包括与所述第一RPC接口方法关联的第一输入参数属性和第一输出参数属性;所述API网关拦截所述第一RPC调用请求的第一输入参数值,根据所述第一输入参数属性指示的启用输入参数的引用传递的第一指示,将所述第一输入参数值写入分布式缓存;所述API网关基于引用传递标识和所述第一输入参数值在所述分布式缓存中的第
一访问地址信息生成替代所述第一输入参数值的第一替代输入参数,传输给所述目标微服务;所述目标微服务拦截所述第一替代输入参数,当识别到所述第一替代输入参数中的所述引用传递标识时,基于所述第一访问地址信息从所述分布式缓存读取所述第一输入参数值,传递给所述第一RPC接口方法,以基于所述第一输入参数值执行所述第一RPC接口方法。
[0006]在可选的实施方式中,所述方法包括:所述目标微服务拦截执行所述第一RPC接口方法的第一输出参数值,根据所述第一输出参数属性指示的启用输出参数的引用传递的第二指示,将所述第一输出参数值写入所述分布式缓存;所述目标微服务基于所述引用传递标识和所述第一输出参数值在所述分布式缓存中的第二访问地址信息生成替代所述第一输出参数值的第一替代输出参数,传输给所述API网关;所述API网关拦截所述第一替代输出参数,当识别到所述第一替代输出参数中的所述引用传递标识时,基于所述第二访问地址信息从所述分布式缓存读取所述第一输出参数值,传递给所述客户端。
[0007]在可选的实施方式中,所述方法包括:所述目标微服务拦截执行所述第一RPC接口方法的第一输出参数值,根据所述第一输出参数属性指示的不启用输出参数的引用传递的第三指示,将所述第一输出参数值传输给所述API网关;所述API网关拦截所述第一输出参数值,当未识别到所述第一输出参数值中的所述引用传递标识时,将所述第一输出参数值传递给所述客户端。
[0008]在可选的实施方式中,所述方法还包括:所述API网关将所述第一输出参数值传递给所述客户端之后,根据所述第一输入参数属性和第一输出参数属性,向所述分布式缓存发送数据删除请求,所述数据删除请求携带所述第一访问地址信息和第二访问地址信息;所述分布式缓存响应于所述数据删除请求,根据所述数据删除请求携带的所述第一访问地址信息和第二访问地址信息删除已存储的所述第一输入参数值和所述第一输出参数值。
[0009]在可选的实施方式中,所述方法包括:响应于接收到客户端对第二API接口的访问请求,所述API网关根据所述第二API接口对应的第二微服务元数据信息生成对所述目标微服务的第二RPC接口方法的第二RPC调用请求,所述第二微服务元数据信息包括与所述第二RPC接口方法关联的第二输入参数属性和第二输出参数属性;所述API网关拦截所述第二RPC调用请求的第二输入参数值,根据所述第二输入参数属性指示的不启用输入参数的引用传递的第四指示,直接将所述第二输入参数值传输给所述目标微服务;所述目标微服务拦截所述第二输入参数值,当未识别到所述第二输入参数值中的所述引用传递标识时,将所述第二输入参数值传递给所述第二RPC接口方法,以基于所述第
二输入参数值执行所述第二RPC接口方法。
[0010]在可选的实施方式中,所述方法包括:所述目标微服务拦截执行所述第二RPC接口方法的第二输出参数值,根据所述第二输出参数属性指示的启用输出参数的引用传递的第五指示,将所述第二输出参数值写入所述分布式缓存;所述目标微服务基于所述引用传递标识和所述第二输出参数值在所述分布式缓存中的第三访问地址信息生成替代所述第二输出参数值的第二替代输出参数,传输给所述API网关;所述API网关拦截所述第二替代输出参数,当识别到所述第二替代输出参数中的所述引用传递标识时,基于所述第三访问地址信息从所述分布式缓存读取所述第二输出参数值,传递给所述客户端。
[0011]在可选的实施方式中,所述方法包括:所述目标微服务拦截执行所述第二RPC接口方法的第二输出参数值,根据所述第二输出参数属性指示的不启用输出参数的引用传递的第六指示,将所述第二输出参数值传输给所述API网关;所述API网关拦截所述第二输出参数值,当未识别到所述第二输出参数值中的所述引用传递标识时,将所述第二输出参数值传递给所述客户端。
[0012]在可选的实施方式中,所述将所述第一输入参数值写入分布式缓存包括所述API网关将所述第一输入参数值以第一键值对写入所述分布式缓存;所述将所述第一输出参数值写入所述分布式缓存包括将所述第一输出参数值以第二键值对写入所述分布式缓存;所述将所述第二输出参数值写入所述分布式缓存包括将所述第二输出参数值以第三键值对写入所述分布式缓存。
[0013]在可选本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于API网关的远程过程调用处理方法,其特征在于,包括:响应于接收到客户端对第一API接口的访问请求,API网关根据所述第一API接口对应的第一微服务元数据信息生成对目标微服务的第一RPC接口方法的第一RPC调用请求,所述第一微服务元数据信息包括与所述第一RPC接口方法关联的第一输入参数属性和第一输出参数属性;所述API网关拦截所述第一RPC调用请求的第一输入参数值,根据所述第一输入参数属性指示的启用输入参数的引用传递的第一指示,将所述第一输入参数值写入分布式缓存;所述API网关基于引用传递标识和所述第一输入参数值在所述分布式缓存中的第一访问地址信息生成替代所述第一输入参数值的第一替代输入参数,传输给所述目标微服务;所述目标微服务拦截所述第一替代输入参数,当识别到所述第一替代输入参数中的所述引用传递标识时,基于所述第一访问地址信息从所述分布式缓存读取所述第一输入参数值,传递给所述第一RPC接口方法,以基于所述第一输入参数值执行所述第一RPC接口方法。2.根据权利要求1所述的基于API网关的远程过程调用处理方法,其特征在于,所述方法,包括:所述目标微服务拦截执行所述第一RPC接口方法的第一输出参数值,根据所述第一输出参数属性指示的启用输出参数的引用传递的第二指示,将所述第一输出参数值写入所述分布式缓存;所述目标微服务基于所述引用传递标识和所述第一输出参数值在所述分布式缓存中的第二访问地址信息生成替代所述第一输出参数值的第一替代输出参数,传输给所述API网关;所述API网关拦截所述第一替代输出参数,当识别到所述第一替代输出参数中的所述引用传递标识时,基于所述第二访问地址信息从所述分布式缓存读取所述第一输出参数值,传递给所述客户端。3.根据权利要求1所述的基于API网关的远程过程调用处理方法,其特征在于,所述方法,包括:所述目标微服务拦截执行所述第一RPC接口方法的第一输出参数值,根据所述第一输出参数属性指示的不启用输出参数的引用传递的第三指示,将所述第一输出参数值传输给所述API网关;所述API网关拦截所述第一输出参数值,当未识别到所述第一输出参数值中的所述引用传递标识时,将所述第一输出参数值传递给所述客户端。4.根据权利要求2所述的基于API网关的远程过程调用处理方法,其特征在于,所述方法还包括:所述API网关将所述第一输出参数值传递给所述客户端之后,根据所述第一输入参数属性和第一输出参数属性,向所述分布式缓存发送数据删除请求,所述数据删除请求携带所述第一访问地址信息和第二访问地址信息;所述分布式缓存响应于所述数据删除请求,根据所述数据删除请求携带的所述第一访问地址信息和第二访问地址信息删除已存储的所述第一输入参数值和所述第一输出参数值。5.根据权利要求4所述的基于API网关的远程过程调用处理方法,其特征在于,所述方
法包括:响应于接收到客户端对第二API接口的访问请求,所述API网关根据所述第二API接口对应的第二微服务元数据信息生成对所述目标微服务的第二RPC接口方法的第二RPC调用请求,所述第二微服务元数据信息包括与所述第二RPC接口方法关联的第二输入参数属性和第二输出参数属性;所述API网关拦截所述第二RPC调用请求的第二输入参数值,根据所述第二输入参数属性指示的不启用输入参数的引用传递的第四指示,直接将所述第...

【专利技术属性】
技术研发人员:陈大伟朱路明张立群徐莉萍张庆丰
申请(专利权)人:徐工汉云技术股份有限公司
类型:发明
国别省市:

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

1