本申请公开了一种RPC超时机制设置方法、装置、设备及介质,涉及计算机技术领域,应用于客户端,包括:确定RPC请求发送至服务器的第一时刻和所述服务器获取所述RPC请求的第二时刻,以便基于所述第一时刻和所述第二时刻预测当前网络延迟时间;获取所述服务器根据所述RPC请求的历史服务时间预测的当前服务时间;基于所述当前网络延迟时间和所述当前服务时间确定出待发送RPC请求的超时值,并基于所述超时值设置RPC超时机制。通过上述技术方案,能够根据当前网络延迟时间和当前服务时间对待发送RPC请求的超时值进行设置,进而设置RPC超时机制,从而实现超时值的动态调整,避免超时事件的发生。事件的发生。事件的发生。
【技术实现步骤摘要】
一种RPC超时机制设置方法、装置、设备及介质
[0001]本专利技术涉及计算机技术,特别涉及一种RPC超时机制设置方法、装置、设备及介质。
技术介绍
[0002]当前,分布式的集群系统已经成为构建高性能计算机系统的主流体系结构之一,这些集群系统一般采用了客户端服务器模型,节点间以远程过程调用(remote produce call,即RPC)的方式进行通信。在基于RPC构建的分布式系统中,消息丢失、网络失败和节点崩溃等失效情况会导致系统的可靠性问题,如何准确及时的发现系统中的失效是实现高可靠的重要环节。如果失效未能及时检测出来,将严重影响系统的响应性和可用性;相反,如果经常发生虚警,则会导致错误的恢复行动,降低系统效率。因此,在RPC协议设计中,如何检测失效是一个需要密切关注的问题。目前,超时是一种常用的失效检测手段,它通常与一个远程过程调用绑定在一起。大多数RPC协议都使用超时来检测失效。这种失效检测机制对于底层传输协议不可靠的RPC协议尤为有用。因而,RPC超时机制直接影响到基于RPC构建的分布式系统的很多方面,特别是响应性、可靠性、稳定性等。
[0003]传统的RPC协议通常使用简单的固定超时机制,超时值在客户端与服务器绑定通信的句柄时设置,并在整个通信会话期间保持不变。客户端在等待RPC应答消息时会简单为其设置一个固定的超时值。如果应答消息没有在指定的超时期限内到达,RPC底层实现就会通知发生失效。此时,客户端就会执行应用程序指定的失效修正操作,如重传RPC请求、终止客户端应用程序或者直接向用户终端报错。然而在大规模分布式集群系统中,由于网络和服务器负载情况随时间动态变化的,RPC的往返时间(round trip time,简称RTT)是随时间动态变化的,有时甚至会达到几百秒,因此通过设定一个固定的超时值无法准确并及时地检测出失效情况,从而也导致系统的可靠性、稳定性降低。
[0004]综上,如何设置合适的超时值,进而设置合理的超时机制以避免超时事件发生是目前有待解决的问题。
技术实现思路
[0005]有鉴于此,本专利技术的目的在于提供一种RPC超时机制设置方法、装置、设备及介质,能够设置合适的超时值,进而设置合理的超时机制以避免超时事件发生。其具体方案如下:
[0006]第一方面,本申请公开了一种RPC超时机制设置方法,应用于客户端,包括:
[0007]确定RPC请求发送至服务器的第一时刻和所述服务器获取所述RPC请求的第二时刻,以便基于所述第一时刻和所述第二时刻预测当前网络延迟时间;
[0008]获取所述服务器根据所述RPC请求的历史服务时间预测的当前服务时间;
[0009]基于所述当前网络延迟时间和所述当前服务时间确定出待发送RPC请求的超时值,并基于所述超时值设置RPC超时机制。
[0010]可选的,所述获取所述服务器根据所述RPC请求的历史服务时间预测的当前服务时间,包括:
[0011]通过所述服务器根据所述RPC请求的历史服务时间并利用滑动时间窗口算法预测出当前服务时间;
[0012]获取所述服务器发送的携带有所述当前服务时间的RPC应答信息。
[0013]可选的,所述通过所述服务器根据所述RPC请求的历史服务时间并利用滑动时间窗口算法预测出当前服务时间,包括:
[0014]通过所述服务器获取已处理完的每一所述RPC请求的历史服务时间,并将所述历史服务时间记录至第一滑动时间窗口;其中,所述第一滑动时间窗口按照第一预设步长滑动,并记录有第一预设时间长度的所述历史服务时间;
[0015]将所述第一滑动时间窗口中的历史服务时间最大值确定为当前服务时间。
[0016]可选的,所述基于所述第一时刻和所述第二时刻预测当前网络延迟时间,包括:
[0017]基于所述第一时刻和所述第二时刻并利用滑动时间窗口算法预测当前网络延迟时间。
[0018]可选的,所述基于所述第一时刻和所述第二时刻并利用滑动时间窗口算法预测当前网络延迟时间,包括:
[0019]基于所述第一时刻和所述第二时刻计算每一所述RPC请求的历史网络延迟时间,并将所述历史网络延迟时间记录至第二滑动时间窗口;其中,所述第二滑动时间窗口按照第二预设步长滑动,并记录有第二预设时间长度的所述历史网络延迟时间;
[0020]将所述第二滑动时间窗口中的历史网络延迟时间最大值确定为当前网络延迟时间。
[0021]可选的,所述获取所述服务器根据所述RPC请求的历史服务时间预测的当前服务时间,包括:
[0022]获取所述服务器根据所述RPC请求的历史服务时间以及当前负载状况预测的当前服务时间。
[0023]第二方面,本申请公开了一种RPC超时机制设置方法,应用于服务器,包括:
[0024]确定客户端发送RPC请求的第一时刻和获取所述RPC请求的第二时刻,以便所述客户端基于所述第一时刻和所述第二时刻预测当前网络延迟时间;
[0025]根据所述RPC请求的历史服务时间预测当前服务时间,并将所述当前服务时间发送至所述客户端;
[0026]通过所述客户端基于所述当前网络延迟时间和所述当前服务时间确定出待发送RPC请求的超时值,并基于所述超时值设置RPC超时机制。
[0027]第三方面,本申请公开了一种RPC超时机制设置装置,应用于客户端,包括:
[0028]网络延迟预测模块,用于确定RPC请求发送至服务器的第一时刻和所述服务器获取所述RPC请求的第二时刻,以便基于所述第一时刻和所述第二时刻预测当前网络延迟时间;
[0029]服务时间预测模块,用于获取所述服务器根据历史服务时间预测的当前服务时间;
[0030]超时值确定模块,用于基于所述当前网络延迟时间和所述当前服务时间确定出待发送RPC请求的超时值,并基于所述超时值设置RPC超时机制。
[0031]第四方面,本申请公开了一种电子设备,包括:
[0032]存储器,用于保存计算机程序;
[0033]处理器,用于执行所述计算机程序,以实现前述公开的RPC超时机制设置方法的步骤。
[0034]第五方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的RPC超时机制设置方法的步骤。
[0035]可见,本申请确定RPC请求发送至服务器的第一时刻和所述服务器获取所述RPC请求的第二时刻,以便基于所述第一时刻和所述第二时刻预测当前网络延迟时间;获取所述服务器根据所述RPC请求的历史服务时间预测的当前服务时间;基于所述当前网络延迟时间和所述当前服务时间确定出待发送RPC请求的超时值,并基于所述超时值设置RPC超时机制。由此可见,本申请通过客户端和服务器器跟踪记录发送RPC请求的第一时刻和RPC请求到达服务器的第二时刻,以便客户端根据第一时刻和第二时刻预测当前网络延迟时间,然后服务器根据RPC请求的历史服务时间预测当前服务时间,并将当前服务时间反馈给客户端,最后客户端本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种RPC超时机制设置方法,其特征在于,应用于客户端,包括:确定RPC请求发送至服务器的第一时刻和所述服务器获取所述RPC请求的第二时刻,以便基于所述第一时刻和所述第二时刻预测当前网络延迟时间;获取所述服务器根据所述RPC请求的历史服务时间预测的当前服务时间;基于所述当前网络延迟时间和所述当前服务时间确定出待发送RPC请求的超时值,并基于所述超时值设置RPC超时机制。2.根据权利要求1所述的RPC超时机制设置方法,其特征在于,所述获取所述服务器根据所述RPC请求的历史服务时间预测的当前服务时间,包括:通过所述服务器根据所述RPC请求的历史服务时间并利用滑动时间窗口算法预测出当前服务时间;获取所述服务器发送的携带有所述当前服务时间的RPC应答信息。3.根据权利要求2所述的RPC超时机制设置方法,其特征在于,所述通过所述服务器根据所述RPC请求的历史服务时间并利用滑动时间窗口算法预测出当前服务时间,包括:通过所述服务器获取已处理完的每一所述RPC请求的历史服务时间,并将所述历史服务时间记录至第一滑动时间窗口;其中,所述第一滑动时间窗口按照第一预设步长滑动,并记录有第一预设时间长度的所述历史服务时间;将所述第一滑动时间窗口中的历史服务时间最大值确定为当前服务时间。4.根据权利要求1所述的RPC超时机制设置方法,其特征在于,所述基于所述第一时刻和所述第二时刻预测当前网络延迟时间,包括:基于所述第一时刻和所述第二时刻并利用滑动时间窗口算法预测当前网络延迟时间。5.根据权利要求4所述的RPC超时机制设置方法,其特征在于,所述基于所述第一时刻和所述第二时刻并利用滑动时间窗口算法预测当前网络延迟时间,包括:基于所述第一时刻和所述第二时刻计算每一所述RPC请求的历史网络延迟时间,并将所述历史网络延迟时间记录至第二滑动时间窗口;其中,所述第二滑...
【专利技术属性】
技术研发人员:杨观止,
申请(专利权)人:济南浪潮数据技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。