一种用于RPC服务的Mock方法、装置及计算机可读存储介质制造方法及图纸

技术编号:35451401 阅读:11 留言:0更新日期:2022-11-03 12:06
本发明专利技术提供了一种用于RPC服务的Mock方法、装置及计算机可读存储介质,该方法包括:接收遵循RPC框架规范的服务配置片段,将所述服务配置片段映射为对应的配置类对象;提取所述配置类对象的服务要素信息,构建独立的类加载器,加载RPC接口类及其依赖;反射分析所述RPC接口类的继承关系和公有方法声明,得到分析梳理结果;利用字节码操作框架,根据所述分析梳理结果生成所述RPC接口的实现伪类,将所述实现伪类的接口方法委托至Mock服务端的通用处理模块;将所述配置类对象和所述实现伪类添加到RPC框架的上下文环境中,以发布所述RPC接口的Mock服务。利用上述方法,能够快速配置高灵活性Mock服务。活性Mock服务。活性Mock服务。

【技术实现步骤摘要】
一种用于RPC服务的Mock方法、装置及计算机可读存储介质


[0001]本专利技术属于计算机领域,具体涉及一种用于RPC服务的Mock方法、装置及计算机可读存储介质。

技术介绍

[0002]本部分旨在为权利要求书中陈述的本专利技术的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
[0003]在当今多服务协作的时代,大多数系统都不再是孤岛,而是需要相互依赖。同时,由于多系统间天然存在着环境稳定难、数据准备难、并行开发难等问题,也就导致联调测试需要大量的沟通成本和排查成本,而Mock服务的诞生,就是为了尝试解决该类问题。
[0004]目前,很多Mock服务仍采用逐个单独开发部署的维护模式,即使他们在处理流程和功能逻辑方面具有很多的相似之处,但是每当有新的Mock服务需求时,通常还是得重头开始进行数据库设计和代码编写工作,导致工具就绪周期拉长且不具有普适性和推广价值。
[0005]因此,如何快速提供Mock服务是一个亟待解决的问题。

技术实现思路

[0006]针对上述现有技术中存在的问题,提出了一种用于RPC服务的Mock方法、装置及计算机可读存储介质,利用这种方法、装置及计算机可读存储介质,能够解决上述问题。
[0007]本专利技术提供了以下方案。
[0008]第一方面,提供一种用于RPC服务的Mock方法,包括:接收遵循RPC框架规范的服务配置片段,将所述服务配置片段映射为对应的配置类对象;提取所述配置类对象的服务要素信息,构建独立的类加载器,加载RPC接口类及其依赖;反射分析所述RPC接口类的继承关系和公有方法声明,得到分析梳理结果;利用字节码操作框架,根据分析梳理结果生成RPC接口的实现伪类,将实现伪类的接口方法委托至Mock服务端的通用处理模块;将配置类对象和实现伪类添加到RPC框架的上下文环境中,以发布RPC接口的Mock服务。
[0009]在一种实施方式中,服务要素信息包括:服务标识、RPC接口类名称。
[0010]在一种实施方式中,公有方法声明包括:返回值、调用参数和异常信息。
[0011]在一种实施方式中,将实现伪类的接口方法委托至Mock服务端的通用处理模块,还包括:将接口方法的方法名称和方法入参合并为统一的JSON数组结构,并委托到通用处理模块。
[0012]在一种实施方式中,将伪类的接口方法委托至Mock服务端的通用处理模块之后,还包括:通过诊断工具,观测在虚拟机中是否已实时生成了RPC接口的实现伪类,和/或是否完成了接口方法的调用委托。
[0013]在一种实施方式中,发布RPC接口的Mock服务之后,方法还包括:当接收到RPC请求时,Mock服务端的通用处理模块拦截RPC请求,根据RPC请求的服务标识获取对应的类加载
器,并将类加载器动态注入RPC框架;RPC框架使用类加载器解析RPC请求的调用参数,以定位到对应的伪类实现中的指定接口方法,将指定接口方法的调用委托至通用处理模块;通用处理模块根据RPC请求的调用参数生成RPC应答对象,并发送给RPC框架;RPC框架对RPC应答对象进行协议层面的编码,并发送给客户端。
[0014]在一种实施方式中,通用处理模块根据RPC请求的调用参数生成RPC应答对象,还包括:通用处理模块提取RPC请求的调用参数特征值,以匹配应答文本模板,根据应答文本模板和指定类加载器生成RPC应答对象。
[0015]第二方面,提供一种用于RPC服务的Mock装置,包括:RPC框架,用于接收遵循RPC框架规范的服务配置片段,将服务配置片段映射为对应的配置类对象;通用处理模块,用于提取配置类对象的服务要素信息,构建独立的类加载器,加载RPC接口类及其依赖;以及,反射分析RPC接口类的继承关系和公有方法声明,得到分析梳理结果;字节码操作框架,用于根据分析梳理结果生成RPC接口的实现伪类,将实现伪类的接口方法委托至Mock服务端的通用处理模块;通用处理模块,还用于将配置类对象和实现伪类添加到RPC框架的上下文环境中,以发布RPC接口的Mock服务。
[0016]在一种实施方式中,服务要素信息包括:服务标识、RPC接口类名称。
[0017]在一种实施方式中,公有方法声明包括:返回值、调用参数和异常信息。
[0018]在一种实施方式中,字节码操作框架还用于:将接口方法的方法名称和方法入参合并为统一的JSON数组结构,并委托到通用处理模块。
[0019]在一种实施方式中,装置还用于:通过诊断工具,观测在虚拟机中是否已实时生成了RPC接口的实现伪类,和/或是否完成了接口方法的调用委托。
[0020]在一种实施方式中,通用处理模块,还用于:当接收到RPC请求时,Mock服务端的通用处理模块拦截RPC请求,根据RPC请求的服务标识获取对应的类加载器,并将类加载器动态注入RPC框架;RPC框架,还用于使用类加载器解析RPC请求的调用参数,以定位到对应的伪类实现中的指定接口方法,将指定接口方法的调用委托至通用处理模块;通用处理模块,还用于根据RPC请求的调用参数生成RPC应答对象,并发送给RPC框架;RPC框架对RPC应答对象进行协议层面的编码,并发送给客户端。
[0021]在一种实施方式中,通用处理模块还用于:提取RPC请求的调用参数特征值,以匹配应答文本模板,根据应答文本模板和指定类加载器生成RPC应答对象。
[0022]第三方面,提供一种用于RPC服务的Mock装置,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行:第一方面的方法。
[0023]第四方面,提供一种计算机可读存储介质,计算机可读存储介质存储有程序,当程序被多核处理器执行时,使得多核处理器执行如第一方面的方法。
[0024]上述实施方式的优点之一,可以快速配置实现RPC接口的Mock服务。
[0025]本专利技术的其他优点将配合以下的说明和附图进行更详细的解说。
[0026]应当理解,上述说明仅是本专利技术技术方案的概述,以便能够更清楚地了解本专利技术的技术手段,从而可依照说明书的内容予以实施。为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举例说明本专利技术的具体实施方式。
附图说明
[0027]通过阅读下文的示例性实施方式的详细描述,本领域普通技术人员将明白本文所述的优点和益处以及其他优点和益处。附图仅用于示出示例性实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的标号表示相同的部件。在附图中:
[0028]图1为根据本专利技术一实施方式的用于RPC服务的Mock设备的结构示意图;
[0029]图2为根据本专利技术一实施方式的用于RPC服务的Mock方法的流程示意图;
[0030]图3为根据本专利技术一具体实施方式的用于RPC服务的Mock方法的流程示意图;
[0031]图4为本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于RPC服务的Mock方法,其特征在于,包括:接收遵循RPC框架规范的服务配置片段,将所述服务配置片段映射为对应的配置类对象;提取所述配置类对象的服务要素信息,构建独立的类加载器,加载RPC接口类及其依赖;反射分析所述RPC接口类的继承关系和公有方法声明,得到分析梳理结果;利用字节码操作框架,根据所述分析梳理结果生成所述RPC接口的实现伪类,将所述实现伪类的接口方法委托至Mock服务端的通用处理模块;将所述配置类对象和所述实现伪类添加到RPC框架的上下文环境中,以发布所述RPC接口的Mock服务。2.根据权利要求1所述的方法,其特征在于,所述服务要素信息包括:服务标识、RPC接口类名称。3.根据权利要求1所述的方法,其特征在于,所述公有方法声明包括:返回值、调用参数和异常信息。4.根据权利要求1所述的方法,其特征在于,将所述实现伪类的接口方法委托至Mock服务端的通用处理模块,还包括:将所述接口方法的方法名称和方法入参合并为统一的JSON数组结构,并委托到所述通用处理模块。5.根据权利要求1所述的方法,其特征在于,将所述伪类的接口方法委托至Mock服务端的通用处理模块之后,还包括:通过诊断工具,观测在虚拟机中是否已实时生成了RPC接口的实现伪类,和/或是否完成了接口方法的调用委托。6.根据权利要求1所述的方法,其特征在于,在发布所述RPC接口的Mock服务之后,所述方法还包括:当接收到RPC请求时,所述Mock服务端的通用处理模块拦截所述RPC请求,根据所述RPC请求的服务标识获取对应的所述类加载器,并将所述类加载器动态注入所述RPC框架;所述RPC框架使用所述类加载器解析所述RPC请求的调用参数,以定位到对应的所述伪类实现中的指定接口方法,将所述指定接口方法的调用委托至所述通用处理模块;所述通用处理模块根据所述RPC请求的调用参数生成RPC应答对象,并发送给所述RPC框架;所述RPC框架对所述RPC应答对象进行协议层面的编码,并发送给客户端。7.根据权利要求1所述的方法,其特征在于,所述通用处理模块根据所述RPC请求的调用参数生成RPC应答对象,还包括:所述通用处理模块提取所述RPC请求的调用参数特征值,以匹配应答文本模板,根据所述应答文本模板和指定类加载器生成所述RPC应答对象。8.一种用于RPC服务的Mock装置,其特征在于,包括:RPC框架,用于接收遵循RPC框架规范的服务配置片段,将所述服务配置片段映射为对应的配置类对象;通用处理模块,用于提取所述配置类对象的服务要素...

【专利技术属性】
技术研发人员:刘旭生黄凤王荣海欧鹏翟威沈涛陆辉
申请(专利权)人:中国银联股份有限公司
类型:发明
国别省市:

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

1