CN109871289B - 一种远程过程调用rpc服务生成方法及装置 - Google Patents
一种远程过程调用rpc服务生成方法及装置 Download PDFInfo
- Publication number
- CN109871289B CN109871289B CN201910105837.5A CN201910105837A CN109871289B CN 109871289 B CN109871289 B CN 109871289B CN 201910105837 A CN201910105837 A CN 201910105837A CN 109871289 B CN109871289 B CN 109871289B
- Authority
- CN
- China
- Prior art keywords
- service
- configuration
- code
- target rpc
- rpc service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
本申请涉及数据处理技术领域,具体而言,涉及一种远程过程调用RPC服务生成方法及装置。本申请实施例中,首先,获取生成目标RPC服务所需的描述文件和配置文件,进一步地,基于所述描述文件,确定所述目标RPC服务对应的服务接口代码,基于所述配置文件,确定所述目标RPC服务对应的服务配置代码,进一步地,根据所述服务接口代码和所述服务配置代码,生成所述目标RPC服务。采用这种方式,可以帮助用户构建目标RPC服务,可以提升目标RPC服务的生成效率。
Description
技术领域
本申请涉及数据处理技术领域,具体而言,涉及一种远程过程调用RPC服务生成方法及装置。
背景技术
远程过程调用(Remote Procedure Call,RPC),是一种通过网络从远程计算机程序上请求服务。
目前,通常基于Go语言(The Go Programming Language,Golang)构建RPC服务,每构建一个RPC服务需要引入相同的第三方服务,对基础库需要进行相似的封装,且需要面临配置文件到数据结构映射的繁重工作。
发明内容
有鉴于此,本申请实施例的目的在于提供一种远程过程调用RPC服务生成方法及装置,可以帮助用户构建目标RPC服务,可以提升目标RPC服务的生成效率。
主要包括以下几个方面:
第一方面,本申请实施例提供了一种远程过程调用RPC服务生成方法,所述方法包括:
获取生成目标RPC服务所需的描述文件和配置文件;
基于所述描述文件,确定所述目标RPC服务对应的服务接口代码;
基于所述配置文件,确定所述目标RPC服务对应的服务配置代码;
根据所述服务接口代码和所述服务配置代码,生成所述目标RPC服务。
在一些实施例中,所述基于所述描述文件,确定所述目标RPC服务对应的服务接口代码,包括:
对所述描述文件进行解析,得到生成所述目标RPC服务所需的多个应用程序编程接口的描述参数;
使用预设语言对所述描述参数进行转化,生成所述目标RPC服务对应的服务接口代码。
在一些实施例中,所述基于所述配置文件,确定所述目标RPC服务对应的服务配置代码,包括:
解析所述配置文件,得到所述目标RPC服务的服务器端对应的第一配置参数和所述目标RPC服务的客户端对应的第二配置参数;
根据所述第一配置参数,确定所述目标RPC服务的服务器端对应的第一服务配置代码;
根据所述第二配置参数,确定所述目标RPC服务的客户端对应的第二服务配置代码。
在一些实施例中,所述解析所述配置文件,得到所述目标RPC服务的服务器端对应的第一配置参数和所述目标RPC服务的客户端对应的第二配置参数,包括:
对所述配置文件进行解析后,遍历所述配置文件中的各个配置项;
根据各个配置项对应的名称,分别识别出所述目标RPC服务的服务器端对应的第一配置参数和所述目标RPC服务的客户端对应的第二配置参数。
在一些实施例中,所述方法还包括:
获取预设的所述目标RPC服务的预处理代码;
所述根据所述服务接口代码和所述服务配置代码,生成所述目标RPC服务,包括:
根据所述服务接口代码、所述服务配置代码和所述预处理代码,生成所述目标RPC服务。
在一些实施例中,所述预处理代码包括以下代码中的至少一种:
日志地址解析预处理代码;计算接口调用耗时预处理代码;统计每秒查询率预处理代码。
第二方面,本申请实施例提供了一种远程过程调用RPC服务生成装置,所述装置包括:
第一获取模块,用于获取生成目标RPC服务所需的描述文件和配置文件;
第一确定模块,用于基于所述描述文件,确定所述目标RPC服务对应的服务接口代码;
第二确定模块,用于基于所述配置文件,确定所述目标RPC服务对应的服务配置代码;
生成模块,用于根据所述服务接口代码和所述服务配置代码,生成所述目标RPC服务。
在一些实施例中,所述第一确定模块,具体用于根据以下步骤确定所述目标RPC服务对应的服务接口代码:
对所述描述文件进行解析,得到生成所述目标RPC服务所需的多个应用程序编程接口的描述参数;
使用预设语言对所述描述参数进行转化,生成所述目标RPC服务对应的服务接口代码。
在一些实施例中,所述第二确定模块包括:
解析模块,用于解析所述配置文件,得到所述目标RPC服务的服务器端对应的第一配置参数和所述目标RPC服务的客户端对应的第二配置参数;
第三确定模块,用于根据所述第一配置参数,确定所述目标RPC服务的服务器端对应的第一服务配置代码;
第四确定模块,用于根据所述第二配置参数,确定所述目标RPC服务的客户端对应的第二服务配置代码。
在一些实施例中,所述解析模块,具体用于根据以下步骤得到所述目标RPC服务的服务器端对应的第一配置参数和所述目标RPC服务的客户端对应的第二配置参数:
对所述配置文件进行解析后,遍历所述配置文件中的各个配置项;
根据各个配置项对应的名称,分别识别出所述目标RPC服务的服务器端对应的第一配置参数和所述目标RPC服务的客户端对应的第二配置参数。
在一些实施例中,所述装置还包括第二获取模块:
所述第二获取模块,用于获取预设的所述目标RPC服务的预处理代码;
所述生成模块,还用于根据以下步骤生成所述目标RPC服务:
根据所述服务接口代码、所述服务配置代码和所述预处理代码,生成所述目标RPC服务。
在一些实施例中,所述预处理代码包括以下代码中的至少一种:
日志地址解析预处理代码;计算接口调用耗时预处理代码;统计每秒查询率预处理代码。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过所述总线通信,所述机器可读指令被所述处理器运行时执行上述第一方面或第一方面任一种可能的实施方式中的远程过程调用RPC服务生成方法的步骤。
第四方面,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述第一方面或第一方面任一种可能的实施方式中的远程过程调用RPC服务生成方法的步骤。
基于上述任一方面,本申请实施例提供的远程过程调用RPC服务生成方案,首先,获取生成目标RPC服务所需的描述文件和配置文件,进一步地,基于所述描述文件,确定所述目标RPC服务对应的服务接口代码,基于所述配置文件,确定所述目标RPC服务对应的服务配置代码,进一步地,根据所述服务接口代码和所述服务配置代码,生成所述目标RPC服务。采用这种方式,可以帮助用户构建目标RPC服务,可以提升目标RPC服务的生成效率。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例一所提供的一种远程过程调用RPC服务生成方法的流程图;
图2示出了本申请实施例二所提供的一种远程过程调用RPC服务生成方法的流程图;
图3示出了本申请实施例三所提供的一种远程过程调用RPC服务生成装置的功能模块图之一;
图4示出了本申请实施例三所提供的一种远程过程调用RPC服务生成装置的功能模块图之二;
图5示出了本申请实施例四所提供的一种电子设备的结构示意图。
图标:300-远程过程调用RPC服务生成装置;310-第一获取模块;320-第一确定模块;330-第二确定模块;340-生成模块;332-解析模块;334-第三确定模块;336-第四确定模块;350-第二获取模块;500-电子设备;510-处理器;520-存储器;530-总线。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了使得本领域技术人员能够使用本申请内容,结合特定应用场景“生成远程过程调用RPC服务的初始化代码”,给出以下实施方式。对于本领域技术人员来说,在不脱离本申请的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用场景。
本申请实施例下述方法、装置、电子设备或计算机可读存储介质可以应用于任何需要生成远程过程调用RPC服务的初始化代码的场景,本申请实施例并不对具体的应用场景作限制,任何使用本申请实施例提供的远程过程调用RPC服务生成的方案均在本申请保护范围内。
目前,通常基于Go语言构建RPC服务,每构建一个RPC服务需要引入相同的第三方服务,对基础库需要进行相似的封装,且需要面临配置文件到数据结构映射的繁重工作,请求预处理和服务启动流程几乎一样,但又必须重复开发。
针对上述问题,本申请实施例提供的远程过程调用RPC服务生成方案,首先,获取生成目标RPC服务所需的描述文件和配置文件,进一步地,基于所述描述文件,确定所述目标RPC服务对应的服务接口代码,基于所述配置文件,确定所述目标RPC服务对应的服务配置代码,进一步地,根据所述服务接口代码和所述服务配置代码,生成所述目标RPC服务。采用这种方式,可以帮助用户构建目标RPC服务,可以提升目标RPC服务的生成效率。
为便于对本申请进行理解,下面结合具体实施例对本申请提供的技术方案进行详细说明。
实施例一
参见图1所示,图1为本申请实施例一提供的一种远程过程调用RPC服务生成方法的流程图,所述方法包括:
S101:获取生成目标RPC服务所需的描述文件和配置文件。
在具体实施中,为了帮助用户生成目标RPC服务,首先,需要获取用户事先编写的目标RPC服务所需的描述文件和配置文件,这里,用户编写的描述文件和配置文件的格式可以为文本格式,描述文件包括目标RPC服务所需的多个应用程序编程接口(ApplicationProgramming Interface,API)的描述参数,比如请求参数、返回参数以及各个参数对应的属性、字段、类型等,用于对目标RPC服务进行描述;配置文件包括目标RPC服务对应的服务器端和客户端的配置参数,用于对目标RPC服务进行相应配置。
S102:基于所述描述文件,确定所述目标RPC服务对应的服务接口代码。
在具体实施中,在获取到生成目标RPC服务所需的描述文件之后,可以对该描述文件进行解析、识别、转换等操作,进而可以生成与目标RPC服务对应的服务接口代码。
这里,与目标RPC服务对应的服务接口代码,是用于对目标RPC服务进行描述和定义的代码,包括描述和定义目标RPC服务所需的多个应用程序编程接口的代码。
S103:基于所述配置文件,确定所述目标RPC服务对应的服务配置代码。
在具体实施中,在获取到生成目标RPC服务所需的配置文件之后,可以对该配置文件进行解析、识别、转换等操作,进而可以生成与目标RPC服务对应的服务配置代码。
这里,与目标RPC服务对应的服务配置代码,是用于对目标RPC服务对应的服务器端和客户端进行配置的代码,包括目标RPC服务对应的服务器端被其他第三方服务调用的第一接口代码,以便其他第三方服务直接通过该第一接口代码调用该目标服务,以及目标RPC服务对应的客户端访问其他第三方服务的第二接口代码,以便目标RPC服务可以通过该第二接口代码直接调用其他第三方服务。
需要说明的是,其他第三方服务不限于其他RPC服务、其他类型服务。
S104:根据所述服务接口代码和所述服务配置代码,生成所述目标RPC服务。
在具体实施中,在确定出目标RPC服务对应的服务接口代码和服务配置代码之后,即生成上述代码之后,可以通过用户触发的运行指令,加载服务接口代码和服务配置代码,进而生成目标RPC服务。
这里,本申请实施例中,远程过程调用RPC服务生成方法的执行主体可以为构建RPC服务的工具。
本申请实施例一提供的远程过程调用RPC服务生成方法,首先,获取生成目标RPC服务所需的描述文件和配置文件,进一步地,基于所述描述文件,确定所述目标RPC服务对应的服务接口代码,基于所述配置文件,确定所述目标RPC服务对应的服务配置代码,进一步地,根据所述服务接口代码和所述服务配置代码,生成所述目标RPC服务。采用这种方式,可以帮助用户构建目标RPC服务,可以提升目标RPC服务的生成效率。
实施例二
参见图2所示,图2为本申请实施例二提供的一种远程过程调用RPC服务生成方法的流程图,所述方法包括:
S201:获取生成目标RPC服务所需的描述文件和配置文件。
S202:对所述描述文件进行解析,得到生成所述目标RPC服务所需的多个应用程序编程接口的描述参数。
在具体实施中,在获取到生成目标RPC服务所需的描述文件之后,可以对该描述文件进行解析,进而解析出描述文件中生成目标RPC服务所需的多个应用程序编程接口的描述参数。
这里,应用程序编程接口的描述参数,例如,请求参数、返回参数以及各个参数对应的属性、字段、类型等参数,用于对目标RPC服务进行描述。
S203:使用预设语言对所述描述参数进行转化,生成所述目标RPC服务对应的服务接口代码。
在具体实施中,在得到生成目标RPC服务所需的多个应用程序编程接口的描述参数之后,需要使用预设语言对描述参数进行转化,以便生成用预设语言编写的目标RPC服务对应的服务接口代码。
这样,用户可以在生成服务接口代码的基础上,添加对应的业务逻辑即可,可以提升构建目标RPC服务的效率,为用户节省构建目标RPC服务的时间。
这里,与目标RPC服务对应的服务接口代码,是用于对目标RPC服务进行描述和定义的代码,包括描述和定义目标RPC服务所需的多个应用程序编程接口的代码。
需要说明的是,预设语言可以为Go语言,也可以为Java语言,当然,不同语言的构建逻辑相同。
S204:基于所述配置文件,确定所述目标RPC服务对应的服务配置代码。
S205:根据所述服务接口代码和所述服务配置代码,生成所述目标RPC服务。
这里,步骤S201、S204、S205的描述可以参见步骤S101、S103、S104的描述,在此,不再进行赘述。
一种可能的实施方式中,步骤S204中基于所述配置文件,确定所述目标RPC服务对应的服务配置代码,包括以下步骤:
步骤(1):解析所述配置文件,得到所述目标RPC服务的服务器端对应的第一配置参数和所述目标RPC服务的客户端对应的第二配置参数。
在具体实施中,在获取到生成目标RPC服务所需的配置文件之后,可以对该配置文件进行解析,进而得到目标RPC服务的服务器端和客户端对应的配置参数,配置参数包括配置服务器端的第一配置参数和配置客户端的第二配置参数。
步骤(2):根据所述第一配置参数,确定所述目标RPC服务的服务器端对应的第一服务配置代码。
在具体实施中,在得到目标RPC服务的服务器端对应的第一配置参数之后,需要使用预设语言对第一配置参数进行转化,以便生成用预设语言编写的目标RPC服务的服务器端对应的第一服务配置代码。
这里,对目标RPC服务的服务器端的配置为纯数据配置,具体地,将第一配置参数对应的数值对应存入相应的数据结构中,并将第一配置参数用预设语言转换成第一服务配置代码。其中,与目标RPC服务的服务器端对应的第一服务配置代码,是用于对目标RPC服务对应的服务器端进行配置的代码,即目标RPC服务对应的服务器端被其他第三方服务调用的第一服务配置代码,以便其他第三方服务直接通过该第一服务配置调用该目标服务。
步骤(3):根据所述第二配置参数,确定所述目标RPC服务的客户端对应的第二服务配置代码。
在具体实施中,在得到目标RPC服务的客户端对应的第二配置参数之后,需要使用预设语言对第二配置参数进行转化,以便生成用预设语言编写的目标RPC服务的客户端对应的第二服务配置代码。
这里,对目标RPC服务的客户端的配置为非纯数据配置,具体地,使用预设语言将第二配置参数对应的数值对应存入相应的数据结构中,并将传入数值的数据结构传给其他第三方服务,以得到第二服务配置代码,这样,通过在目标RPC服务与第三方服务之间构建第二服务配置代码,用户可以方便地使用该代码调用第三方的服务。
其中,与目标RPC服务的客户端对应的第二服务配置代码,是用于对目标RPC服务对应的客户端进行配置的代码,即目标RPC服务对应的客户端访问其他第三方服务的第二服务配置代码,以便目标RPC服务可以通过该第二服务配置代码直接调用其他第三方服务。
需要说明的是,其他第三方服务不限于其他RPC服务、其他类型服务。
一种可能的实施方式中,所述解析所述配置文件,得到所述目标RPC服务的服务器端对应的第一配置参数和所述目标RPC服务的客户端对应的第二配置参数,包括:
对所述配置文件进行解析后,遍历所述配置文件中的各个配置项;根据各个配置项对应的名称,分别识别出所述目标RPC服务的服务器端对应的第一配置参数和所述目标RPC服务的客户端对应的第二配置参数。
这里,目标RPC服务的服务器端对应的第一配置参数和客户端对应的第二配置参数的类型不同,即纯数据配置和非纯数据配置,因而生成第一服务配置代码和第二服务配置代码所采用的方式不同。所以,需要对他们进行识别并区分操作,具体地,首先,可以对解析后的配置文件中的各个配置项进行遍历,并根据各个配置项对应的名称,识别出属于目标RPC服务的服务器端对应的第一配置参数,以及属于目标RPC服务的客户端对应的第二配置参数。
这样,基于配置文件可以确定出目标RPC服务对应的服务配置代码,即确定出配置对象的初始化代码。
一种可能的实施方式中,所述方法还包括:获取预设的所述目标RPC服务的预处理代码。
这里,由于远程过程调用RPC服务的请求预处理和服务启动流程相同,所以本申请提供的构建RPC服务的工具提供了编辑好的预处理代码,进而在创建目标RPC服务时,可以直接获取到该预处理代码,具体地,可以利用RPC框架预留的API,为用户添加通用的请求预处理功能,即添加该预处理代码。
其中,步骤S205中根据所述服务接口代码和所述服务配置代码,生成所述目标RPC服务,包括:
根据所述服务接口代码、所述服务配置代码和所述预处理代码,生成所述目标RPC服务。
在具体实施中,可以对确定的服务接口代码、服务配置代码和预处理代码进行加载,以生成目标RPC服务。
一种可能的实施方式中,所述预处理代码包括以下代码中的至少一种:
日志地址解析预处理代码;计算接口调用耗时预处理代码;统计每秒查询率预处理代码。
这里,目标RPC服务对应的预处理功能不限于解析日志地址的功能、计算接口调用耗时的功能、统计每秒查询率的功能。
需要说明的是,每秒查询率(Query Per Second,QPS),在因特网上,经常用每秒查询率来衡量域名系统服务器的机器的性能,即每秒的响应请求次数,也即最大吞吐能力。
本申请实施例中,首先,获取生成目标RPC服务所需的描述文件和配置文件,进一步地,对所述描述文件进行解析,得到生成所述目标RPC服务所需的多个应用程序编程接口的描述参数,进而使用预设语言对所述描述参数进行转化,生成所述目标RPC服务对应的服务接口代码,基于所述配置文件,确定所述目标RPC服务对应的服务配置代码,进一步地,根据所述服务接口代码和所述服务配置代码,生成所述目标RPC服务。采用这种方式,可以帮助用户构建目标RPC服务,可以提升目标RPC服务的生成效率。
一示例中,以生成存取mysql(关系型数据库管理系统)数据库的RPC服务A为例,包括以下执行步骤如下:
步骤1:用户运行构建RPC服务A的工具,并提供proto文件(描述文件)和ini文件(配置文件)的路径,工具开始构建RPC服务。
步骤2:工具发现服务A需要访问mysql数据库,并在ini文件中提供了相关配置,初始化mysql配置的时候采用相应的初始化方法,配置对应的数据结构和初始化逻辑,生成服务配置代码。
步骤3:根据proto文件,生成RPC服务A对应的服务接口代码。
步骤4:接收用户业务逻辑的开发,获取预处理代码,并加载服务接口代码和服务配置代码,以生成RPC服务A。
实施例三
基于同一申请构思,本申请实施例三还提供了一种与实施例一和实施例二提供的远程过程调用RPC服务生成方法对应的远程过程调用RPC服务生成装置,由于本申请实施例中的装置解决问题的原理与本申请上述实施例中的远程过程调用RPC服务生成方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参见图3所示,为本申请实施例三提供的一种远程过程调用RPC服务生成装置300的功能模块图之一,生成装置300包括:
第一获取模块310,用于获取生成目标RPC服务所需的描述文件和配置文件;
第一确定模块320,用于基于所述描述文件,确定所述目标RPC服务对应的服务接口代码;
第二确定模块330,用于基于所述配置文件,确定所述目标RPC服务对应的服务配置代码;
生成模块340,用于根据所述服务接口代码和所述服务配置代码,生成所述目标RPC服务。
一种可能的实施方式中,所述第一确定模块320,具体用于根据以下步骤确定所述目标RPC服务对应的服务接口代码:
对所述描述文件进行解析,得到生成所述目标RPC服务所需的多个应用程序编程接口的描述参数;
使用预设语言对所述描述参数进行转化,生成所述目标RPC服务对应的服务接口代码。
一种可能的实施方式中,参见图4所示,为本申请实施例三提供的一种远程过程调用RPC服务生成装置300的功能模块图之二,其中,所述第二确定模块330包括:
解析模块332,用于解析所述配置文件,得到所述目标RPC服务的服务器端对应的第一配置参数和所述目标RPC服务的客户端对应的第二配置参数;
第三确定模块334,用于根据所述第一配置参数,确定所述目标RPC服务的服务器端对应的第一服务配置代码;
第四确定模块336,用于根据所述第二配置参数,确定所述目标RPC服务的客户端对应的第二服务配置代码。
一种可能的实施方式中,参见图4所示,所述解析模块332,具体用于根据以下步骤得到所述目标RPC服务的服务器端对应的第一配置参数和所述目标RPC服务的客户端对应的第二配置参数:
对所述配置文件进行解析后,遍历所述配置文件中的各个配置项;
根据各个配置项对应的名称,分别识别出所述目标RPC服务的服务器端对应的第一配置参数和所述目标RPC服务的客户端对应的第二配置参数。
一种可能的实施方式中,参见图4所示,所述装置还包括第二获取模块350:
所述第二获取模块350,用于获取预设的所述目标RPC服务的预处理代码;
所述生成模块340,还用于根据以下步骤生成所述目标RPC服务:
根据所述服务接口代码、所述服务配置代码和所述预处理代码,生成所述目标RPC服务。
一种可能的实施方式中,所述预处理代码包括以下代码中的至少一种:
日志地址解析预处理代码;计算接口调用耗时预处理代码;每秒查询率预处理代码。
本申请实施例三提供的远程过程调用RPC服务生成装置300,首先,通过第一获取模块310获取生成目标RPC服务所需的描述文件和配置文件,进一步地,基于所述描述文件,通过第一确定模块320确定所述目标RPC服务对应的服务接口代码,基于所述配置文件,通过第二确定模块330确定所述目标RPC服务对应的服务配置代码,进一步地,根据所述服务接口代码和所述服务配置代码,通过生成模块340生成所述目标RPC服务。采用这种方式,可以帮助用户构建目标RPC服务,可以提升目标RPC服务的生成效率。
实施例四
基于同一申请构思,参见图5所示,为本申请实施例四提供的一种电子设备500的结构示意图,包括:处理器510、存储器520和总线530,所述存储器520存储有所述处理器510可执行的机器可读指令,当电子设备500运行时,所述处理器510与所述存储器520之间通过所述总线530通信,所述机器可读指令被所述处理器510运行时执行如上述图1和图2所示方法实施例一和实施例二中的远程过程调用RPC服务生成方法的步骤,具体地,所述机器可读指令被所述处理器510运行时执行以下指令:
获取生成目标RPC服务所需的描述文件和配置文件;
基于所述描述文件,确定所述目标RPC服务对应的服务接口代码;
基于所述配置文件,确定所述目标RPC服务对应的服务配置代码;
根据所述服务接口代码和所述服务配置代码,生成所述目标RPC服务。
基于同一申请构思,本申请实施例四还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述图1所示和图2所示方法实施例一和实施例二中的远程过程调用RPC服务生成方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
具体地,所述可读存储介质能够为通用的存储介质,如移动磁盘、硬盘等,所述存储介质上的计算机程序被运行时,能够执行上述远程过程调用RPC服务生成方法,可以帮助用户构建目标RPC服务,可以提升目标RPC服务的生成效率。
基于同一申请构思,本申请实施例四还提供了一种计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行上述命远程过程调用RPC服务生成方法的步骤,具体实现可参见上述方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。
基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者所述技术方案的部分可以以软件产品的形式体现出来,所述计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (8)
1.一种远程过程调用RPC服务生成方法,其特征在于,所述方法包括:
获取生成目标RPC服务所需的描述文件和配置文件;
基于所述描述文件,确定所述目标RPC服务对应的服务接口代码;
基于所述配置文件,确定所述目标RPC服务对应的服务配置代码;所述服务配置代码,是用于对所述目标RPC服务对应的服务器端和客户端进行配置的代码;所述服务配置代码包括所述服务器端被其他第三方服务调用的第一接口代码,以及所述客户端访问所述其他第三方服务的第二接口代码;
根据所述服务接口代码和所述服务配置代码,生成所述目标RPC服务;
所述基于所述配置文件,确定所述目标RPC服务对应的服务配置代码,包括:
解析所述配置文件,得到所述目标RPC服务的服务器端对应的第一配置参数和所述目标RPC服务的客户端对应的第二配置参数;
根据所述第一配置参数,确定所述目标RPC服务的服务器端对应的第一服务配置代码;
根据所述第二配置参数,确定所述目标RPC服务的客户端对应的第二服务配置代码。
2.根据权利要求1所述的方法,其特征在于,所述基于所述描述文件,确定所述目标RPC服务对应的服务接口代码,包括:
对所述描述文件进行解析,得到生成所述目标RPC服务所需的多个应用程序编程接口的描述参数;
使用预设语言对所述描述参数进行转化,生成所述目标RPC服务对应的服务接口代码。
3.根据权利要求1所述的方法,其特征在于,所述解析所述配置文件,得到所述目标RPC服务的服务器端对应的第一配置参数和所述目标RPC服务的客户端对应的第二配置参数,包括:
对所述配置文件进行解析后,遍历所述配置文件中的各个配置项;
根据各个配置项对应的名称,分别识别出所述目标RPC服务的服务器端对应的第一配置参数和所述目标RPC服务的客户端对应的第二配置参数。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取预设的所述目标RPC服务的预处理代码;
所述根据所述服务接口代码和所述服务配置代码,生成所述目标RPC服务,包括:
根据所述服务接口代码、所述服务配置代码和所述预处理代码,生成所述目标RPC服务。
5.根据权利要求4所述的方法,其特征在于,所述预处理代码包括以下代码中的至少一种:
日志地址解析预处理代码;计算接口调用耗时预处理代码;统计每秒查询率预处理代码。
6.一种远程过程调用RPC服务生成装置,其特征在于,所述装置包括:
获取模块,用于获取生成目标RPC服务所需的描述文件和配置文件;
第一确定模块,用于基于所述描述文件,确定所述目标RPC服务对应的服务接口代码;
第二确定模块,用于基于所述配置文件,确定所述目标RPC服务对应的服务配置代码;所述服务配置代码,是用于对所述目标RPC服务对应的服务器端和客户端进行配置的代码;所述服务配置代码包括所述服务器端被其他第三方服务调用的第一接口代码,以及所述客户端访问所述其他第三方服务的第二接口代码;
生成模块,用于根据所述服务接口代码和所述服务配置代码,生成所述目标RPC服务;
所述第二确定模块包括:
解析模块,用于解析所述配置文件,得到所述目标RPC服务的服务器端对应的第一配置参数和所述目标RPC服务的客户端对应的第二配置参数;
第三确定模块,用于根据所述第一配置参数,确定所述目标RPC服务的服务器端对应的第一服务配置代码;
第四确定模块,用于根据所述第二配置参数,确定所述目标RPC服务的客户端对应的第二服务配置代码。
7.根据权利要求6所述的装置,其特征在于,所述第一确定模块,具体用于根据以下步骤确定所述目标RPC服务对应的服务接口代码:
对所述描述文件进行解析,得到生成所述目标RPC服务所需的多个应用程序编程接口的描述参数;
使用预设语言对所述描述参数进行转化,生成所述目标RPC服务对应的服务接口代码。
8.根据权利要求6所述的装置,其特征在于,所述解析模块,具体用于根据以下步骤得到所述目标RPC服务的服务器端对应的第一配置参数和所述目标RPC服务的客户端对应的第二配置参数:
对所述配置文件进行解析后,遍历所述配置文件中的各个配置项;
根据各个配置项对应的名称,分别识别出所述目标RPC服务的服务器端对应的第一配置参数和所述目标RPC服务的客户端对应的第二配置参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910105837.5A CN109871289B (zh) | 2019-02-01 | 2019-02-01 | 一种远程过程调用rpc服务生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910105837.5A CN109871289B (zh) | 2019-02-01 | 2019-02-01 | 一种远程过程调用rpc服务生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109871289A CN109871289A (zh) | 2019-06-11 |
CN109871289B true CN109871289B (zh) | 2020-03-10 |
Family
ID=66918565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910105837.5A Active CN109871289B (zh) | 2019-02-01 | 2019-02-01 | 一种远程过程调用rpc服务生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109871289B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110377292A (zh) * | 2019-06-17 | 2019-10-25 | 平安普惠企业管理有限公司 | 服务配置方法、装置、计算机设备及存储介质 |
CN110442329A (zh) * | 2019-06-26 | 2019-11-12 | 平安科技(深圳)有限公司 | 代码段的生成方法、装置、存储介质及计算机设备 |
CN112306568A (zh) * | 2019-07-26 | 2021-02-02 | 广州虎牙科技有限公司 | 服务实例配置方法、装置、电子设备及存储介质 |
CN111309375B (zh) * | 2020-02-11 | 2023-07-04 | 北京字节跳动网络技术有限公司 | 生成远程过程调用工具包的方法、装置、介质和电子设备 |
CN111930534A (zh) * | 2020-07-29 | 2020-11-13 | 北京字节跳动网络技术有限公司 | 数据调用方法、装置和电子设备 |
CN112965832B (zh) * | 2021-02-18 | 2023-09-26 | 腾讯科技(深圳)有限公司 | 一种远程过程调用rpc服务调用方法和相关装置 |
CN113312003B (zh) * | 2021-06-15 | 2023-03-28 | 浪潮云信息技术股份公司 | 一种基于Go语言的物理裸机磁盘存储管理方法 |
CN117519670B (zh) * | 2023-12-25 | 2024-04-09 | 杭银消费金融股份有限公司 | 一种自动化生成rpc代码的方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107450993A (zh) * | 2017-06-13 | 2017-12-08 | 积成电子股份有限公司 | 一种分布式iec61850通信组件的数据交互方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6219835B1 (en) * | 1998-10-15 | 2001-04-17 | International Business Machines Corporation | Multi-language DCE remote procedure call |
CN101719902B (zh) * | 2009-12-04 | 2014-07-30 | 深圳创维数字技术股份有限公司 | 一种远程过程调用方法和系统 |
CN102137079B (zh) * | 2010-06-21 | 2014-04-02 | 华为技术有限公司 | 一种远程过程调用的业务开发方法及装置 |
CN104363285B (zh) * | 2014-11-18 | 2018-04-10 | 东方网力科技股份有限公司 | 一种网络通信程序生成方法及装置 |
US9699249B2 (en) * | 2014-12-05 | 2017-07-04 | Vmware, Inc. | Runtime generation of application programming interfaces for remote procedure call services |
CN105159974A (zh) * | 2015-08-27 | 2015-12-16 | 浪潮软件股份有限公司 | 一种跨数据源的web服务自动生成方法 |
CN105912334A (zh) * | 2016-04-08 | 2016-08-31 | 浙江大学 | 一种autosar软件组件的内部行为对象代码生成方法 |
CN106209503B (zh) * | 2016-06-28 | 2019-07-09 | 武汉斗鱼网络科技有限公司 | Rpc接口测试方法及系统 |
CN107643953A (zh) * | 2016-07-20 | 2018-01-30 | 深圳市祈飞科技有限公司 | 一种远程对象调用方法及系统 |
CN107315360B (zh) * | 2017-06-15 | 2019-06-28 | 南方电网科学研究院有限责任公司 | 测量仪器的远程控制方法和系统 |
CN107832046A (zh) * | 2017-10-31 | 2018-03-23 | 北京聆云信息技术有限公司 | 数据生成方法及装置 |
CN108038796B (zh) * | 2017-12-11 | 2021-02-26 | 厦门亿力吉奥信息科技有限公司 | 基于c++的gis服务运行方法、存储介质 |
CN108200080B (zh) * | 2018-01-19 | 2021-03-16 | 深圳神州数码云科数据技术有限公司 | 一种远程服务通信方法 |
CN108959210A (zh) * | 2018-07-09 | 2018-12-07 | 网易(杭州)网络有限公司 | 一种文件转换的方法及装置 |
CN109117127A (zh) * | 2018-08-21 | 2019-01-01 | 水木康益(北京)信息技术有限公司 | 程序代码生成方法、装置及计算机可读存储介质 |
-
2019
- 2019-02-01 CN CN201910105837.5A patent/CN109871289B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107450993A (zh) * | 2017-06-13 | 2017-12-08 | 积成电子股份有限公司 | 一种分布式iec61850通信组件的数据交互方法 |
Non-Patent Citations (1)
Title |
---|
Java(TM) API for XML-based RPC (JAX-RPC) Tools;Sun Microsystems,inc;《https://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/1.6/jaxrpc/jaxrpc-tools.html》;20031007;第1-6页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109871289A (zh) | 2019-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109871289B (zh) | 一种远程过程调用rpc服务生成方法及装置 | |
CN108984388B (zh) | 一种生成自动化测试用例的方法及终端设备 | |
CN110083455B (zh) | 图计算处理方法、装置、介质及电子设备 | |
US9590859B2 (en) | Discovering resources of a distributed computing environment | |
CN110990411B (zh) | 数据结构的生成方法及装置、调用方法及装置 | |
CN108089972B (zh) | 接口测试方法及装置 | |
CN108694120B (zh) | 测试服务组件的方法和装置 | |
CN110928594A (zh) | 服务开发方法和平台 | |
CN106302011B (zh) | 基于多端的测试方法及终端 | |
CN112581568A (zh) | 动态海报的生成方法、装置、服务器及存储介质 | |
CN111309407A (zh) | 集成第三方库的处理方法及装置 | |
CN111090666A (zh) | 一种数据处理方法、装置、系统及计算机可读存储介质 | |
CN111177269A (zh) | 基于结构化的区块链数据存储、获取方法及装置 | |
CN111651314A (zh) | 一种基于云端的Promethus规则文件管理方法及装置 | |
CN110753136B (zh) | 域名解析方法、装置、设备及存储介质 | |
CN111124627A (zh) | 应用程序的调起者确定方法、装置、终端及存储介质 | |
CN107092601B (zh) | 资源文件构建方法、资源文件应用方法及装置 | |
CN114817003A (zh) | 一种测试信息处理方法、装置、设备及存储介质 | |
CN113448985A (zh) | 一种api接口生成方法、调用方法、装置及电子设备 | |
CN112417020A (zh) | 业务扩展的实现方法、装置、计算机设备和存储介质 | |
CN111782196A (zh) | 基于mvp架构的开发方法及装置 | |
CN111562928A (zh) | 资源提供方法及装置、资源下载方法及装置 | |
CN110855782A (zh) | 一种服务调用系统、方法、电子设备及可读存储介质 | |
CN116501414B (zh) | 基于云平台的资源控制方法、装置、介质及计算设备 | |
CN111399806A (zh) | 一种组件管理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |