生成远程过程调用工具包的方法、装置、介质和电子设备制造方法及图纸

技术编号:24572748 阅读:20 留言:0更新日期:2020-06-20 23:57
本公开提供了一种生成远程过程调用工具包的方法、装置、介质和电子设备。所述方法包括:获取并安装依赖包;获取第一主文件和第一从文件;基于所述第一主文件和所述第一从文件生成工程文件;基于所述第一主文件更新所述工程文件的项目配置文件;基于所述第一主文件和所述第一从文件生成所述第一远程过程调用的客户端代码,并将所述客户端代码挂载在所述远程过程调用框架的应用上下文变量中,生成客户端文件;基于所述依赖包、所述工程文件、所述项目配置文件和所述客户端文件生成可执行的所述第一远程过程调用的工具包。简化了发布RPC调用的过程,提高了代码的安全性、可靠性和易维护性。

Methods, devices, media, and electronics that generate remote procedure call kits

【技术实现步骤摘要】
生成远程过程调用工具包的方法、装置、介质和电子设备
本公开涉及计算机
,具体而言,涉及一种生成远程过程调用工具包的方法、装置、介质和电子设备。
技术介绍
微服务是一种用于构建应用的架构方案。与传统的单体式方案不同,微服务将应用拆分成多个核心功能。每个功能都被称为一项服务,可以单独构建和部署,以便各项服务在工作(和出现故障)时不会相互影响。微服务架构具有易于部署和扩展等优点。远程过程调用(英文全称RemoteProcedureCall,简称RPC)是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC框架是实现RPC协议的框架。Thrift和gRPC是最主流的两个RPC框架。RPC框架主要分为RPC服务端和RPC客户端两个部分。RPC服务端用于响应RPC请求,RPC客户端用于发起RPC请求,两者必需成对使用。接口描述语言(英文全称InterfaceDescriptionLanguage,简称IDL)是RPC框架实现跨平台和跨编程语言进行通信的基础。IDL文件被用来生成不同编程语言版本的通信库。为了更好地解决跨平台通信和灵活部署等问题,通常需要将RPC和微服务结合使用。由于RPC客户端应用于其他的框架中,因此,RPC调用与框架的融合变成了一项繁琐的工作。例如,首先需要安装相关的依赖包;然后手动从远程仓库复制需要的IDL文件,并根据IDL文件生成库代码;再获取相关的微服务部署信息,并进行相关配置,实例化RPC客户端;最后才能生成远程过程调用工具包。这一系列操作不仅过程复杂,而且对技术要求高,极易出现差错。
技术实现思路
提供该
技术实现思路
部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该
技术实现思路
部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。本公开的目的在于提供一种生成远程过程调用工具包的方法、装置、介质和电子设备,能够解决上述提到的至少一个技术问题。具体方案如下:根据本公开的具体实施方式,第一方面,本公开提供一种生成远程过程调用工具包的方法,包括:获取与第一远程过程调用相关联的依赖包的包信息,并在远程过程调用框架中根据每个依赖包的包信息安装对应的依赖包;获取与所述第一远程过程调用相关联的第一主文件;其中,所述第一主文件是由接口描述语言撰写的文件,且所述第一主文件包括由接口描述语言撰写的多个与所述第一远程过程调用相关联的远程过程调用服务;分析所述第一主文件,获取每个第一从文件;其中,所述第一从文件是由接口描述语言撰写的文件;基于所述第一主文件和所述第一从文件生成工程文件;基于所述第一主文件更新所述工程文件的项目配置文件;基于所述第一主文件和所述第一从文件生成所述第一远程过程调用的客户端代码,并将所述客户端代码挂载在所述远程过程调用框架的应用上下文变量中,生成客户端文件;基于所述依赖包、所述工程文件、所述项目配置文件和所述客户端文件生成可执行的所述第一远程过程调用的工具包。根据本公开的具体实施方式,第二方面,本公开提供一种生成远程过程调用工具包的装置,包括:安装依赖包单元,用于获取与第一远程过程调用相关联的依赖包的包信息,并在远程过程调用框架中根据每个依赖包的包信息安装对应的依赖包;获取第一主文件单元,用于获取与所述第一远程过程调用相关联的第一主文件;其中,所述第一主文件是由接口描述语言撰写的文件,且所述第一主文件包括由接口描述语言撰写的多个与所述第一远程过程调用相关联的远程过程调用服务;获取第一从文件单元,用于分析所述第一主文件,获取每个第一从文件;其中,所述第一从文件是由接口描述语言撰写的文件;生成工程文件单元,用于基于所述第一主文件和所述第一从文件生成工程文件;更新项目配置文件单元,用于基于所述第一主文件更新所述工程文件的项目配置文件;生成客户端文件单元,用于基于所述第一主文件和所述第一从文件生成所述第一远程过程调用的客户端代码,并将所述客户端代码挂载在所述远程过程调用框架的应用上下文变量中,生成客户端文件;生成工具包单元,用于基于所述依赖包、所述工程文件、所述项目配置文件和所述客户端文件生成可执行的所述第一远程过程调用的工具包。根据本公开的具体实施方式,第三方面,本公开提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如第一方面任一项所述生成远程过程调用工具包的方法。根据本公开的具体实施方式,第四方面,本公开提供一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如第一方面任一项所述生成远程过程调用工具包的方法。本公开实施例的上述方案与现有技术相比,至少具有以下有益效果:本公开提供了一种生成远程过程调用工具包的方法、装置、介质和电子设备。本公开通过区分未安装依赖包和已安装依赖包,避免了对已安装依赖包的重复安装,提高了生成远程过程调用工具包的效率。把发布RPC调用的信息集成在一个工具包中,并以可执行文件的方式发布。从而完成RPC调用需要的所有准备工作。简化了发布RPC调用的过程,提高了代码的安全性、可靠性和易维护性。附图说明结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。在附图中:图1示出了根据本公开实施例的生成远程过程调用工具包的方法的流程图;图2示出了根据本公开实施例的生成远程过程调用工具包的装置的单元框图;图3示出了根据本公开的实施例的电子设备连接结构示意图。具体实施方式下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。<本文档来自技高网
...

【技术保护点】
1.一种生成远程过程调用工具包的方法,其特征在于,包括:/n获取与第一远程过程调用相关联的依赖包的包信息,并在远程过程调用框架中根据每个依赖包的包信息安装对应的依赖包;/n获取与所述第一远程过程调用相关联的第一主文件;其中,所述第一主文件是由接口描述语言撰写的文件,且所述第一主文件包括由接口描述语言撰写的多个与所述第一远程过程调用相关联的远程过程调用服务;/n分析所述第一主文件,获取每个第一从文件;其中,所述第一从文件是由接口描述语言撰写的文件;/n基于所述第一主文件和所述第一从文件生成工程文件;/n基于所述第一主文件更新所述工程文件的项目配置文件;/n基于所述第一主文件和所述第一从文件生成所述第一远程过程调用的客户端代码,并将所述客户端代码挂载在所述远程过程调用框架的应用上下文变量中,生成客户端文件;/n基于所述依赖包、所述工程文件、所述项目配置文件和所述客户端文件生成可执行的所述第一远程过程调用的工具包。/n

【技术特征摘要】
1.一种生成远程过程调用工具包的方法,其特征在于,包括:
获取与第一远程过程调用相关联的依赖包的包信息,并在远程过程调用框架中根据每个依赖包的包信息安装对应的依赖包;
获取与所述第一远程过程调用相关联的第一主文件;其中,所述第一主文件是由接口描述语言撰写的文件,且所述第一主文件包括由接口描述语言撰写的多个与所述第一远程过程调用相关联的远程过程调用服务;
分析所述第一主文件,获取每个第一从文件;其中,所述第一从文件是由接口描述语言撰写的文件;
基于所述第一主文件和所述第一从文件生成工程文件;
基于所述第一主文件更新所述工程文件的项目配置文件;
基于所述第一主文件和所述第一从文件生成所述第一远程过程调用的客户端代码,并将所述客户端代码挂载在所述远程过程调用框架的应用上下文变量中,生成客户端文件;
基于所述依赖包、所述工程文件、所述项目配置文件和所述客户端文件生成可执行的所述第一远程过程调用的工具包。


2.根据权利要求1所述的方法,其特征在于,所述获取与所述第一远程过程调用相关联的第一主文件,包括:
基于预设代码仓库标识和预设第一主路径通过主调用应用程序接口拉取所述第一主文件。


3.根据权利要求2所述的方法,其特征在于,所述分析所述第一主文件,获取每个第一从文件,包括:
分析所述第一主文件,获取每个第一从路径;
基于每个第一从路径通过从调用应用程序接口分别拉取对应的第一从文件。


4.根据权利要求2所述的方法,其特征在于,所述基于所述第一主文件更新所述工程文件的项目配置文件,包括:
分析所述第一主文件,获取每个远程过程调用服务的服务名和对应的命名空间;其中,所述命名空间是对应所述远程过程调用服务在微服务的注册名称;
获取所述工程文件的项目配置文件;
基于所述项目配置文件生成第一抽象语法树;
分别基于每个远程过程调用服务的所述服务名、对应的命名空间和对应的第一主路径生成第一抽象语法树的节点,并生成第二抽象语法树;
基于所述第二抽象语法树更新所述工程文件的项目配置文件。


5.根据权利要求1所述的方法,其特征在于,所述基于所述第一主文件和所述第一从文件生成所述第一远程过程调用的客户端代码,包括:
基于所述第一主文件和所述第一从文件生成所述第一远程过程调用的客户端TS类型声明代码;
基于所述第一...

【专利技术属性】
技术研发人员:邬亮
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:北京;11

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

1