本技术属于计算机,可涉及分布式技术、云技术等领域,具体而言,本技术涉及一种远程过程调用rpc服务调用方法、装置及电子设备。
背景技术:
1、随着互联网的快速发展,分布式系统因在其分布性、资源共享、可扩展性等方面的优势,成为了当前互联网的主流架构,在分布式系统架构中不同服务节点之间可以通过远程过程调用(remote procedurecall,rpc)实现远程通信和相互调用。
2、目前,当服务端进行服务更新时,通常需要基于服务更新内容,对服务代码进行相应修改,并对修改后的服务代码进行上线更新。然而,在服务上线更新时,需要进行服务器的重启,以加载更新后的服务,在重启过程中,服务端会停止向各个服务调用方提供服务,影响到应用程序的正常使用。
技术实现思路
1、本技术实施例的目的旨在提供一种能够实现业务服务器的服务动态更新,可无需中止服务的远程过程调用rpc服务调用方法、装置及电子设备。为实现该目的,本技术实施例提供的技术方案如下:
2、一方面,本技术实施例提供了一种远程过程调用rpc服务调用方法,该方法由业务服务器执行,包括:
3、获取客户端的rpc服务调用请求;
4、获取所述rpc服务调用请求对应的服务配置信息;所述服务配置信息包括第一配置信息以及第二配置信息,所述第一配置信息为与业务数据读取有关的配置信息;所述第二配置信息包括与至少一个第一输出字段对应的输出格式有关的配置信息;
5、基于所述第一配置信息,从业务数据库中读取所述rpc服务调用请求对应的第一业务数据;
6、基于所述第二配置信息,对所述第一业务数据进行相应处理,得到每个第一输出字段对应的目标业务数据;其中,第一输出字段对应的目标业务数据符合所述第二配置信息中第一输出字段对应的输出格式;
7、对各所述第一输出字段对应的目标业务数据进行序列化,得到针对所述rpc服务调用请求的响应数据;
8、将所述响应数据提供给所述客户端,以使所述客户端基于第一服务接口协议,对所述响应数据进行反序列化,得到各所述目标业务数据;其中,所述第一服务接口协议与所述服务配置信息相对应。
9、另一方面,本技术实施例提供了一种远程过程调用rpc服务调用装置,该装置部署于业务服务器中,所述装置包括:
10、请求获取模块,用于获取客户端的rpc服务调用请求;
11、配置获取模块,用于获取所述rpc服务调用请求对应的服务配置信息;所述服务配置信息包括第一配置信息以及第二配置信息,所述第一配置信息为与业务数据读取有关的配置信息;所述第二配置信息包括与至少一个第一输出字段对应的输出格式有关的配置信息;
12、数据读取模块,用于基于所述第一配置信息,从业务数据库中读取所述rpc服务调用请求对应的第一业务数据;
13、数据处理模块,用于基于所述第二配置信息,对所述第一业务数据进行相应处理,得到每个第一输出字段对应的目标业务数据;其中,第一输出字段对应的目标业务数据符合所述第二配置信息中第一输出字段对应的输出格式;
14、序列化模块,用于对各所述第一输出字段对应的目标业务数据进行序列化,得到针对所述rpc服务调用请求的响应数据;
15、数据发送模块,用于将所述响应数据提供给所述客户端,以使所述客户端基于第一服务接口协议,对所述响应数据进行反序列化,得到各所述目标业务数据;其中,所述第一服务接口协议与所述服务配置信息相对应。
16、可选的,所述第一业务数据包括与各所述第一输出字段相关的第二输出字段的业务数据;
17、所述数据处理模块可以用于:
18、对于每个第一输出字段,从所述第一业务数据中确定与该第一输出字段相关的第二输出字段;基于所述第二配置信息中与该第一输出字段对应的配置信息,对所述相关的第二输出字段的业务数据进行处理,得到该第一输出字段对应的目标业务数据。
19、可选的,所述服务配置信息是所述业务服务器通过以下方式获取到的:
20、接收管理服务器发送的配置更新提示信息;
21、基于所述配置更新提示信息,从所述管理服务器获取更新的服务配置信息;
22、其中,所述更新的服务配置信息是所述管理服务器响应于管理客户端的配置更新操作生成的。
23、可选的,所述客户端基于第一服务接口协议,对所述响应数据进行反序列化,包括:
24、所述客户端调用基于第一服务协议编译得到的桩stub代码,对所述响应数据进行反序列化;
25、其中,所述stub代码是所述客户端从所述管理服务器获取到的,所述stub代码是所述管理服务器通过以下方式生成的:
26、响应于所述管理客户端的协议更新操作,确定更新的第一服务接口协议;所述更新的第一服务接口协议与所述更新的服务配置信息相对应;
27、对所述第一服务接口协议进行编译得到所述stub代码。
28、可选的,所述序列化模块可以用于:
29、对于每个第一输出字段,将该第一输出字段对应的目标业务数据序列化为二进制编码数据;
30、将序列化得到的各第一输出字段的二进制编码数据,作为针对所述rpc服务调用请求的响应数据。
31、可选的,所述第二配置信息中第一输出字段对应的配置信息包括所述第一输出字段的字段标识以及目标数据类型;所述第二配置信息中第一输出字段对应的配置信息是基于所述第一服务接口协议中对所述第一输出字段的定义配置的。
32、可选的,所述数据处理模块可以用于:
33、基于所述第二配置信息中与该第一输出字段对应的配置信息,确定该第一输出字段的目标数据类型;
34、确定所述相关的第二输出字段对应的数据类型;
35、若所述相关的第二输出字段对应的数据类型属于简单数据类型,则将所述相关的第二输出字段的业务数据转换为该第一输出字段的目标数据类型的数据;
36、若所述相关的第二输出字段对应的数据类型属于复杂数据类型,则将所述相关的第二输出字段的业务数据拆分为多个简单数据类型的子数据,并分别将各子数据转换为该第一输出字段的目标数据类型的数据。
37、可选的,所述第二配置信息包括格式化配置信息以及算子配置信息;
38、所述数据处理模块可以用于:
39、基于所述第二配置信息中与该第一输出字段对应的格式化配置信息,对所述相关的第二输出字段的业务数据进行格式化处理;
40、基于所述第二配置信息中与该第一输出字段对应的算子配置信息,对所述格式化处理后的第二输出字段的业务数据执行算子相关逻辑,得到该第一输出字段对应的目标业务数据。
41、可选的,所述服务配置信息还包括与业务处理逻辑相关的业务配置信息;
42、所述数据处理模块可以用于:
43、若所述业务配置信息中包括与该第一输出字段对应的业务处理逻辑,则对所述相关的第二输出字段的业务数据进行相应业务处理,得到所述相关的第二输出字段的业务处理结果;
44、基于所述第二配置信息中与该第一输出字段对应的配置信息,对所述相关的第二输出字段的业务处理结果进行相应处理,得到该第一输出字段对应的目标业务数据。
45、另一方面,本技术实施例提供了一种远程过程调用rpc服务调用系统,该系统包括客户端与多个业务服务器;
46、其中:
47、所述客户端,用于从多个业务服务器中确定目标业务服务器,并向所述目标业务服务器发送rpc服务调用请求;基于第一服务接口协议,对获取到的所述响应数据进行反序列化,得到各所述目标业务数据;其中,所述第一服务接口协议与服务配置信息相对应;
48、所述目标业务服务器,用于获取所述rpc服务调用请求对应的服务配置信息;所述服务配置信息包括第一配置信息以及第二配置信息,所述第一配置信息为与业务数据读取有关的配置信息;所述第二配置信息包括与至少一个第一输出字段对应的输出格式有关的配置信息;基于所述第一配置信息,从业务数据库中读取所述rpc服务调用请求对应的第一业务数据;基于所述第二配置信息,对所述第一业务数据进行相应处理,得到每个第一输出字段对应的目标业务数据;对各所述第一输出字段对应的目标业务数据进行序列化,得到针对所述rpc服务调用请求的响应数据,将所述响应数据提供给所述客户端;其中,第一输出字段对应的目标业务数据符合所述第二配置信息中第一输出字段对应的输出格式。
49、另一方面,本技术实施例还提供了一种电子设备,该电子设备包括存储器和处理器,存储器中存储有计算机程序,处理器执行该计算机程序以实现本技术任一可选实施例中提供的方法。
50、另一方面,本技术实施例还提供了一种计算机可读存储介质,该存储介质中存储有计算机程序,该计算机程序被处理器执行时实现本技术任一可选实施例中提供的方法。
51、另一方面,本技术实施例还提供了一种计算机程序产品,该计算机产品包括计算机程序,该计算机程序被处理器执行时实现本技术任一可选实施例中提供的方法。
52、本技术实施例提供的技术方案带来的有益效果如下:
53、本技术实施例提供的远程过程调用rpc服务调用方法,该方法通过配置业务服务器的服务配置信息,在获取到rpc服务调用请求时,基于第一配置信息从业务数据库中读取第一业务数据,并基于第二配置信息中与各第一输出字段对应的输出格式有关的配置信息,对第一业务数据处理,得到各第一输出字段对应的目标业务数据,将序列化后的各目标业务数据发送至客户端,以使客户端基于服务配置信息对应的第一服务协议,进行反序列化解析出目标业务数据。
54、基于该方法,当需要进行服务更新时,业务服务器(服务端)可通过动态修改服务配置信息的方式,实现对服务接口协议的修改,以及服务的更新,而无需中止业务服务器的服务,也无需进行编码、上线等冗余流程,降低了服务更新的复杂度,提升了系统的可用性、可维护性、以及系统开发效率,更好的满足实际业务需要。