一种远程服务调用方法、设备及介质与流程

文档序号:34284839发布日期:2023-05-27 16:35阅读:33来源:国知局
一种远程服务调用方法、设备及介质与流程

本申请涉及微服务,尤其涉及一种远程服务调用方法、设备及介质。


背景技术:

1、当今社会,随着微服务应用逐步落地,微服务架构越来越流行,微服务已成为一大趋势,而通信层是微服务架构的核心模块,支持微服务架构间的rpc通信成为开发团队关心的重点。

2、以rpc通信为基础,通过rpc(remote procedure call protocol)远程过程调用协议,使测试开发人员对网络通信这些细节黑盒的情况下进行远程服务调用。由于各服务部署在不同机器,服务间的调用免不了网络通信过程,而服务调用方每调用一个服务都要重新进行网络通信相关的代码撰写,以致远程服务调用的过程较为复杂而且极易出错。


技术实现思路

1、本申请实施例提供了一种远程服务调用方法、设备及介质,用于解决如下技术问题:由于各服务部署在不同机器,服务间的调用免不了网络通信过程,而服务调用方每调用一个服务都要重新进行网络通信相关的代码撰写,以致远程服务调用的过程较为复杂而且极易出错。

2、本申请实施例采用下述技术方案:

3、本申请实施例提供一种远程服务调用方法。包括,获取当前用户发送的微服务调用请求;其中,微服务请求中至少包括待调用rpc名称;将微服务调用请求,与预置黑名单数据库中的多个异常微服务调用信息进行比对;在比对结果不一致的情况下,基于微服务调用请求,在预置服务数据库中确定出相应的rpc信息;其中,rpc信息至少包括rpc接口包名、rpc接口类名、rpc方法名、被调参数以及返回值类型中的一项;基于所需返回值对应的类型,构造不同的post请求,以通过post请求对rpc信息对应的rpc接口进行调用。

4、本申请实施例通过封装rpcclient实现微服务架构中各服务单元提供的各种rpc接口调用,不仅能够进行多种的参数类型的定制,并且支持不同类型的返回值,以及不同部署模式下的微服务单元的接口,从而实现快速、高效的rpc接口测试。本申请实施例通过在预置服务数据库中确定出相应的rpc信息,以及基于返回值对应的类型,构造不同的post请求。服务调用者无需考虑rpc通信层的开发,只需了解要调用的rpc服务方法的对应参数以及返回值信息,便可将rpc接口当作普通restful api接口进行调用,进而简化测试人员的编码过程,提高测试效率。

5、在本申请的一种实现方式中,基于所需返回值对应的类型,构造不同的post请求,具体包括:获取返回值类型;在返回值类型为泛型类型的情况下,基于object类型建立post请求。

6、在本申请的一种实现方式中,基于所需返回值对应的类型,构造不同的post请求之后,方法还包括:基于rpc服务的类型,确定出传入参数的类型;将传入参数进行封装处理,以将其转换为object类型;对转换为object类型的参数进行接收。

7、在本申请的一种实现方式中,获取当前用户发送的微服务调用请求之前,方法还包括:获取多个不同的rpc服务地址;将多个不同的rpc服务地址存储至预置服务数据库,以在接收到微服务调用请求的情况下,基于微服务调用请求在预置服务数据库中确定出相应的rpc服务地址。

8、在本申请的一种实现方式中,基于微服务调用请求,在预置服务数据库中确定出相应的rpc信息,具体包括:确定待调用微服务是否按照rpc接口包名、rpc接口类名以及rpc方法名相连接的方式进行命名;以及确定待调用微服务su名称是否与相应的serviceunit.json中的名称保持一致;以及确定待调用微服务中的被调参数所对应的参数名称,与预置参数传输顺序是否正确;以及确定待调用微服务对应的返回值类型。

9、在本申请的一种实现方式中,post请求中至少包括微服务地址与请求体信息。

10、在本申请的一种实现方式中,请求体信息至少包括返回值类型、su名称、rpc服务接口的参数列表以及hashmap中的一项或多项。

11、在本申请的一种实现方式中,将微服务调用请求,与预置黑名单数据库中的多个异常微服务调用信息进行比对,具体包括:在微服务调用请求中的待调用rpc名称以及待调用rpc方法中的任一项,属于预置黑名单数据库中的敏感rpc名称或敏感rpc方法中的一项的情况下,将微服务调用请求确定为危险调用请求;对危险调用请求进行拦截处理。

12、本申请实施例提供一种远程服务调用设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够:获取当前用户发送的微服务调用请求;其中,微服务请求中至少包括待调用rpc名称;将微服务调用请求,与预置黑名单数据库中的多个异常微服务调用信息进行比对;在比对结果不一致的情况下,基于微服务调用请求,在预置服务数据库中确定出相应的rpc信息;其中,rpc信息至少包括rpc接口包名、rpc接口类名、rpc方法名、被调参数以及返回值类型中的一项;基于所需返回值对应的类型,构造不同的post请求,以通过post请求对rpc信息对应的rpc接口进行调用。

13、本申请实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,计算机可执行指令设置为:获取当前用户发送的微服务调用请求;其中,微服务请求中至少包括待调用rpc名称;将微服务调用请求,与预置黑名单数据库中的多个异常微服务调用信息进行比对;在比对结果不一致的情况下,基于微服务调用请求,在预置服务数据库中确定出相应的rpc信息;其中,rpc信息至少包括rpc接口包名、rpc接口类名、rpc方法名、被调参数以及返回值类型中的一项;基于所需返回值对应的类型,构造不同的post请求,以通过post请求对rpc信息对应的rpc接口进行调用。

14、本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:本申请实施例通过封装rpcclient实现微服务架构中各服务单元提供的各种rpc接口调用,不仅能够进行多种的参数类型的定制,并且支持不同类型的返回值,以及不同部署模式下的微服务单元的接口,从而实现快速、高效的rpc接口测试。本申请实施例通过在预置服务数据库中确定出相应的rpc信息,以及基于返回值对应的类型,构造不同的post请求。服务调用者无需考虑rpc通信层的开发,只需了解要调用的rpc服务方法的对应参数以及返回值信息,便可将rpc接口当作普通restful api接口进行调用,进而简化测试人员的编码过程,提高测试效率。



技术特征:

1.一种远程服务调用方法,其特征在于,所述方法包括:

2.根据权利要求1所述的一种远程服务调用方法,其特征在于,所述基于所需返回值对应的类型,构造不同的post请求,具体包括:

3.根据权利要求1所述的一种远程服务调用方法,其特征在于,所述基于所需返回值对应的类型,构造不同的post请求之后,所述方法还包括:

4.根据权利要求1所述的一种远程服务调用方法,其特征在于,所述获取当前用户发送的微服务调用请求之前,所述方法还包括:

5.根据权利要求1所述的一种远程服务调用方法,其特征在于,所述基于所述微服务调用请求,在预置服务数据库中确定出相应的rpc信息,具体包括:

6.根据权利要求1所述的一种远程服务调用方法,其特征在于,所述post请求中至少包括微服务地址与请求体信息。

7.根据权利要求6所述的一种远程服务调用方法,其特征在于,所述请求体信息至少包括返回值类型、su名称、rpc服务接口的参数列表以及hashmap中的一项或多项。

8.根据权利要求1所述的一种远程服务调用方法,其特征在于,所述将所述微服务调用请求,与预置黑名单数据库中的多个异常微服务调用信息进行比对,具体包括:

9.一种远程服务调用设备,包括:

10.一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:


技术总结
本申请实施例公开了一种远程服务调用方法、设备及介质。获取当前用户发送的微服务调用请求;其中,微服务请求中至少包括待调用RPC名称;将微服务调用请求,与预置黑名单数据库中的多个异常微服务调用信息进行比对;在比对结果不一致的情况下,基于微服务调用请求,在预置服务数据库中确定出相应的RPC信息;其中,RPC信息至少包括RPC接口包名、RPC接口类名、RPC方法名、被调参数以及返回值类型中的一项;基于所需返回值对应的类型,构造不同的POST请求,以通过POST请求对RPC信息对应的RPC接口进行调用。通过上述方法,提高RPC接口测试效率。

技术研发人员:荆希珍,程宝君
受保护的技术使用者:浪潮通用软件有限公司
技术研发日:
技术公布日:2024/1/12
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1