
技术摘要:
本申请适用于通信技术领域,尤其涉及一种远程过程调用方法、装置、计算机可读存储介质及终端设备。所述方法包括:获取远程过程调用请求,远程过程调用请求包括客户端请求调用的目标接口的接口信息;根据接口信息确定目标接口对应的候选通信通道,候选通信通道为存储于 全部
背景技术:
GRPC为google提供的一种远程过程调用(Remote Procedure Call,RPC)框架。在 GRPC框架中,客户端的应用可以像调用本地对象一样直接调用远程服务端上的应用。在传 统的远程过程调用中,客户端在每一次的调用过程中都需要先与远程服务端建立通信通 道,然后通过当前所建立的通信通道来调用远程服务端上的应用,即传统的远程过程调用 中,客户端与远程服务端之间的通信通道是在每一次调用过程中实时建立的。由于通信通 道的建立比较耗时,传统通过实时建立通信通道来进行远程过程调用的方式使得远程过程 调用的性能较差。
技术实现要素:
本申请实施例提供了一种远程过程调用方法、装置、计算机可读存储介质及终端 设备,可以解决现有的远程过程调用性能较差的问题。 第一方面,本申请实施例提供了一种远程过程调用方法,包括: 获取远程过程调用请求,所述远程过程调用请求中包括客户端请求调用的目标接 口的接口信息; 根据所述接口信息确定所述目标接口对应的候选通信通道,所述候选通信通道为 存储于所述客户端本地的通信通道,所述候选通信通道为所述客户端根据注册中心中所述 目标接口的第一注册信息预先建立的通信通道; 利用预设的负载均衡策略从所述候选通信通道中选取目标通信通道,并使用所述 目标通信通道调用所述目标接口。 在第一方面的一种可能的实现方式中,所述根据所述接口信息确定所述目标接口 对应的候选通信通道,可以包括: 根据所述接口信息判断所述客户端本地中是否存储有目标存根,所述目标存根为 所述客户端之前调用所述目标接口时所创建的存根; 若所述客户端本地中存储有所述目标存根,则使用所述目标存根调用所述目标接 口; 若所述客户端本地中未存储有所述目标存根,则根据所述接口信息确定所述目标 接口对应的候选通信通道。 可选的,所述使用所述目标存根调用所述目标接口,可以包括: 确定所述目标存根的存根状态; 若所述存根状态为第一预设状态,则根据所述接口信息确定所述目标接口对应的 候选通信通道; 4 CN 111580987 A 说 明 书 2/12 页 若所述存根状态为第二预设状态,则使用所述目标存根调用所述目标接口。 示例性的,所述确定所述目标存根的存根状态,可以包括: 检测所述目标存根对应的目标接口在所述注册中心中的注册状态,所述注册状态 包括有效状态和无效状态; 当所述目标存根对应的目标接口在所述注册中心中的注册状态为有效状态时,则 确定所述目标存根的存根状态为所述第二预设状态; 当所述目标存根对应的目标接口在所述注册中心中的注册状态为无效状态时,则 确定所述目标存根的存根状态为所述第一预设状态。 在第一方面的一种可能的实现方式中,所述使用所述目标通信通道调用所述目标 接口,可以包括: 建立所述目标通信通道对应的目标存根,并将所述目标通信通道对应的目标存根 存储于所述客户端本地; 使用所述目标通信通道对应的目标存根调用所述目标接口。 可选地,所述远程过程调用方法,还可以包括: 获取所述注册中心中各候选接口的第二注册信息,所述候选接口包括所述目标接 口; 根据各所述候选接口的第二注册信息调整所述客户端本地中各所述候选接口对 应的候选通信通道。 第二方面,本申请实施例提供了一种远程过程调用装置,可以包括: 调用请求获取模块,用于获取远程过程调用请求,所述远程过程调用请求中包括 客户端请求调用的目标接口的接口信息; 候选通道确定模块,用于根据所述接口信息确定所述目标接口对应的候选通信通 道,所述候选通信通道为存储于所述客户端本地的通信通道,所述候选通信通道为所述客 户端根据注册中心中所述目标接口的第一注册信息预先建立的通信通道; 远程过程调用模块,用于利用预设的负载均衡策略从所述候选通信通道中选取目 标通信通道,并使用所述目标通信通道调用所述目标接口。 在第二方面的一种可能的实现方式中,所述候选通道确定模块,可以包括: 目标存根判断单元,用于根据所述接口信息判断所述客户端本地中是否存储有目 标存根,所述目标存根为所述客户端之前调用所述目标接口时所创建的存根; 目标存根调用单元,用于若所述客户端本地中存储有所述目标存根,则使用所述 目标存根调用所述目标接口; 候选通道确定单元,用于若所述客户端本地中未存储有所述目标存根,则根据所 述接口信息确定所述目标接口对应的候选通信通道。 可选地,所述目标存根调用单元,可以包括: 存根状态确定分单元,用于确定所述目标存根的存根状态; 候选通道确定分单元,用于若所述存根状态为第一预设状态,则根据所述接口信 息确定所述目标接口对应的候选通信通道; 目标存根调用分单元,用于若所述存根状态为第二预设状态,则使用所述目标存 根调用所述目标接口。 5 CN 111580987 A 说 明 书 3/12 页 示例性的,所述存根状态确定分单元,具体用于检测所述目标存根对应的目标接 口在所述注册中心中的注册状态,所述注册状态包括有效状态和无效状态;当所述目标存 根对应的目标接口在所述注册中心中的注册状态为有效状态时,则确定所述目标存根的存 根状态为所述第二预设状态;当所述目标存根对应的目标接口在所述注册中心中的注册状 态为无效状态时,则确定所述目标存根的存根状态为所述第一预设状态。 在第二方面的一种可能的实现方式中,所述远程过程调用模块,可以包括: 目标存根建立单元,用于建立所述目标通信通道对应的目标存根,并将所述目标 通信通道对应的目标存根存储于所述客户端本地; 远程过程调用单元,用于使用所述目标通信通道对应的目标存根调用所述目标接 口。 可选地,所述远程过程调用装置,还可以包括: 注册信息获取模块,用于获取所述注册中心中各候选接口的第二注册信息,所述 候选接口包括所述目标接口; 候选通道调整模块,用于根据各所述候选接口的第二注册信息调整所述客户端本 地中各所述候选接口对应的候选通信通道。 第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所 述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实 现上述第一方面中任一项所述的远程过程调用方法。 第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储 介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一项所述 的远程过程调用方法。 第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端 设备上运行时,使得终端设备执行上述第一方面中任一项所述的远程过程调用方法。 可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的 相关描述,在此不再赘述。 本申请实施例与现有技术相比存在的有益效果是: 本申请实施例中,可根据服务端在注册中心中注册的各接口的注册信息预先建立 客户端与各接口对应的候选通信通道,并可将所建立的候选通信通道保存于客户端本地。 因此,在进行远程过程调用时,可根据远程过程调用请求中所包括的客户端请求调用的目 标接口的接口信息从客户端本地中确定目标接口对应的候选通信通道,并可利用预设的负 载均衡策略从候选通信通道中选取目标通信通道,以使用目标通信通道来调用目标接口。 即通过预先建立并缓存通信通道的方式来避免远程过程调用过程中通信通道的建立,可极 大地减少远程过程调用中通信通道建立所耗费的时间,提高远程过程调用的性能。另外,通 过负载均衡策略来进行目标通信通道的选取,也可有助于提高远程过程调用的性能,提升 用户体验。 附图说明 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述 中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些 6 CN 111580987 A 说 明 书 4/12 页 实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附 图获得其他的附图。 图1是本申请实施例一提供的远程过程调用方法所适用于的调用系统的系统示意 图; 图2是本申请实施例一提供的远程过程调用方法的流程示意图; 图3是本申请实施例二提供的远程过程调用方法所适用于的调用系统的系统示意 图; 图4是本申请实施例二提供的远程过程调用方法的流程示意图; 图5是本申请实施例三提供的远程过程调用装置的结构示意图; 图6是本申请实施例提供的终端设备的结构示意图。