远程调用方法及装置、电子设备、计算机可读存储介质与流程

文档序号:34232665发布日期:2023-05-24 16:28阅读:32来源:国知局
远程调用方法及装置、电子设备、计算机可读存储介质与流程

本公开涉及计算机,特别涉及远程调用方法及装置、电子设备、计算机可读存储介质。


背景技术:

1、远程过程调用(rpc,remote procedure call),是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

2、在相关技术中,在实现rpc方案,即实现远程调用时,通常仅关注业务开发上的便捷性。例如,通常会关注于如何通过接口描述语言(idl,interface descriptionlanguage)对rpc请求的输入参数和输入参数进行统一定义,以生成不同编程语言的软件开发工具包(sdk,software development kit),rpc请求的发起方,即调用端(caller)和rpc请求的接收方,即被调用端(callee)之间往往并不需要关注sdk底层如何进行网络通信。

3、相关技术中的该种rpc实现方案,即远程调用方法虽然使得caller和callee之间可以便捷的进行通信,但是可能存在通信耗时长的问题。


技术实现思路

1、本公开提供一种远程调用方法及装置、电子设备、计算机可读存储介质。

2、第一方面,本公开提供了一种远程调用方法,应用于调用端,该方法包括:

3、获取待发起的远程调用请求的请求参数,其中,所述远程调用请求用于传输所述请求参数至被调用端,所述调用端和所述被调用端所处的地理位置不同;

4、从至少一个代理服务端中,确定待使用的目标代理服务端,其中,在所述调用端基于所述至少一个代理服务端分别与所述被调用端进行通信的情况下,所述目标代理服务端为所有代理服务端中通信耗时满足第一预设条件的代理服务端,每一代理服务端与所述被调用端之间基于不同的专用网络连接通道连接;

5、根据所述请求参数,生成所述远程调用请求,并将所述远程调用请求发送至所述目标代理服务端;

6、接收所述目标代理服务端返回的响应参数,其中,所述响应参数是所述目标代理服务端响应于所述远程调用请求将所述请求参数发送至所述被调用端之后,由所述被调用端生成并提供至所述目标代理服务端的,所述请求参数是所述目标代理服务端基于与所述被调用端之间的专用网络连接通道发送至所述被调用端的。

7、第二方面,本公开提供了另一种远程调用方法,应用于目标代理服务端,该方法包括:

8、接收调用端发送的远程调用请求,其中,所述远程调用请求用于传输请求参数至被调用端,所述目标代理服务端与所述被调用端之间基于专用网络连接通道连接;

9、从所述远程调用请求中获取所述请求参数对应的序列化参数,并将所述序列化参数发送至所述被调用端;

10、在接收到所述被调用端提供的、与所述请求参数对应的响应参数的情况下,将所述响应参数提供至所述调用端。

11、第三方面,本公开提供了又一种远程调用方法,应用于被调用端,该方法包括:

12、接收目标代理服务端发送的序列化参数,其中,所述序列化参数是由所述调用端基于远程调用请求的请求参数生成的;

13、对所述序列化参数进行反序列化处理,获得所述请求参数,并根据所述请求参数生成响应参数;

14、将所述响应参数提供至所述目标代理服务端,其中,所述目标代理服务端用于将接收到的所述响应参数通过远程调用响应消息的方式提供至所述调用端,所述远程调用响应消息是由所述目标代理服务端通过将序列化响应参数填充为预设远程调用响应请求接口的参数得到的,所述序列化响应参数是由所述目标代理服务端对所述响应参数进行序列化处理后得到的。

15、第四方面,本公开提供了一种远程调用装置,应用于调用端,该装置包括:

16、获取单元,用于获取待发起的远程调用请求的请求参数,其中,所述远程调用请求用于传输所述请求参数至被调用端,所述调用端和所述被调用端所处的地理位置不同;

17、确定单元,用于从至少一个代理服务端中,确定待使用的目标代理服务端,其中,在所述调用端基于所述至少一个代理服务端分别与所述被调用端进行通信的情况下,所述目标代理服务端为所有代理服务端中通信耗时满足第一预设条件的代理服务端,每一代理服务端与所述被调用端之间基于不同的专用网络连接通道连接;

18、发送单元,用于根据所述请求参数,生成所述远程调用请求,并将所述远程调用请求发送至所述目标代理服务端;

19、接收单元,用于接收所述目标代理服务端返回的响应参数,其中,所述响应参数是所述目标代理服务端响应于所述远程调用请求将所述请求参数发送至所述被调用端之后,由所述被调用端生成并提供至所述目标代理服务端的,所述请求参数是所述目标代理服务端基于与所述被调用端之间的专用网络连接通道发送至所述被调用端的。

20、第五方面,本公开提供了另一种远程调用装置,应用于目标代理服务端,该装置包括:

21、第一接收单元,用于接收调用端发送的远程调用请求,其中,所述远程调用请求用于传输请求参数至被调用端,所述目标代理服务端所处的机房与所述被调用端所处的机房之间基于专用网络连接线连接;

22、参数发送单元,用于从所述远程调用请求中获取所述请求参数对应的序列化参数,并将所述序列化参数发送至所述被调用端;

23、第一参数提供单元,用于在接收到所述被调用端提供的、与所述请求参数对应的响应参数的情况下,将所述响应参数提供至所述调用端。

24、第六方面,本公开提供了又一种远程调用装置,应用于调用端,该装置包括:

25、第二接收单元,用于接收目标代理服务端发送的序列化参数,其中,所述序列化参数是由所述调用端基于远程调用请求的请求参数生成的;

26、参数生成单元,用于对所述序列化参数进行反序列化处理,获得所述请求参数,并根据所述请求参数生成响应参数;

27、第二参数提供单元,用于将所述响应参数提供至所述目标代理服务端,其中,所述目标代理服务端用于将接收到的所述响应参数通过远程调用响应消息的方式提供至所述调用端,所述远程调用响应消息是由所述目标代理服务端通过将序列化响应参数填充为预设远程调用响应请求接口的参数得到的,所述序列化响应参数是由所述目标代理服务端对所述响应参数进行序列化处理后得到的。

28、第七方面,本公开提供了一种电子设备,该电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的一个或多个计算机程序,一个或多个所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面、第二方面以及第三方面的远程调用方法。

29、第八方面,本公开提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序在被处理器执行时实现上述第一方面、第二方面以及第三方面的远程调用方法。

30、本公开所提供的实施例,调用端,即caller在获取到待发起的远程调用请求,即rpc请求的请求参数之后,并不直接基于rpc sdk包将该rpc调用请求发送至被调用端,即callee,而是先从至少一个代理服务端中确定通信耗时满足第一预设条件的代理服务端作为目标代理服务端;之后,该caller将该远程调用请求发送至目标代理服务端,并基于该目标代理服务端获得callee提供的响应参数。

31、在本公开所提供的实施例中,由于每一代理服务端与callee之间基于不同的专用网络连接通道连接,所以caller在基于该至少一个代理服务端与callee之间进行通信时,可以避免数据传输过程中因为经过的网络传输设备不可控从而可能导致的通信耗时长的问题;同时,因为目标代理服务端还是所有代理服务端中通信耗时满足第一预设条件的代理服务端,因此,caller基于目标代理服务端与callee之间进行远程调用,还可以进一步的降低通信耗时,提升通信速度。

32、应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1