远程过程调用控制方法技术

技术编号:39744808 阅读:8 留言:0更新日期:2023-12-17 23:44
本申请公开了一种远程过程调用控制方法

【技术实现步骤摘要】
远程过程调用控制方法、装置、设备及计算机存储介质


[0001]本申请涉及计算机
,尤其涉及远程过程调用
,提供一种远程过程调用控制方法

装置

设备及计算机存储介质


技术介绍

[0002]随着系统复杂度的提升,同时对系统扩展性要求的提高,为了满足这两个看起来矛盾的要求,微服务架构应运而生

在微服务架构中,将不同的功能和模块以服务的形式进行切割,彼此之间成为跨进程甚至是跨服务器之间的功能组件,并且彼此之间通过网络远程过程调用
(remote procedure call

RPC)
的方式进行协作和互联互通

[0003]在一个微服务
A
调用另一微服务
B
的过程中,如果微服务
B
出现了异常,那么微服务
B
就会出现服务超时的情况,而当网络压力较大时,微服务
B
可能积压了大量的超时调用,当更多调用请求到来时,超时情况可能进一步恶化,甚至使得微服务
B
崩溃

为了避免这一情况,微服务架构中引入了超时时长
(deadline time)
参数,该参数在整个调用链路中进行传递,例如:当微服务
B
发现自身的业务处理时长已超过超时时长时,就会停止已超时的业务逻辑的处理,并释放相关的内存和网络资源,从而避免微服务
B
崩溃
>。
[0004]但是,由于目前传递的超时时长在整个调用链路中对于所有微服务都是共享的,那么一旦某个微服务超时,由于调用该微服务的其他微服务也将超时,使得这些微服务之前已经完成的业务逻辑也将作废,从而产生了资源浪费


技术实现思路

[0005]本申请实施例提供一种远程过程调用控制方法

装置

设备及计算机存储介质,用于进行微服务调用时逐渐缩减超时时间,避免全链路超时,减少资源浪费

[0006]一方面,提供一种远程过程调用控制方法,应用于微服务集群中的第一微服务,所述第一微服务为微服务集群中的任一微服务,所述方法包括:
[0007]当接收的第一调用请求的处理过程涉及对第二微服务的调用时,确定所述第二微服务对应的缩减时长;
[0008]基于所述第一调用请求对应的第一超时时长,确定所述第二微服务对应的第二超时时长,所述第二超时时长对应的超时时刻早于所述第一超时时长对应的超时时刻;
[0009]基于所述第一超时时长以及所述缩减时长,向所述第二微服务发起第二调用请求;
[0010]基于所述第二微服务针对所述第二调用请求返回的有损响应,对所述第一调用请求进行处理;所述有损响应为所述第二微服务根据所述第二超时时长以及所述缩减时长确定的实际超时时长,确定所述第二调用请求处理超时时,基于所述第二调用请求的已处理部分返回的

[0011]一方面,提供一种远程过程调用控制装置,应用于微服务集群中的第一微服务,所述第一微服务为微服务集群中的任一微服务,所述装置包括:
[0012]确定单元,用于当接收的第一调用请求的处理过程涉及对第二微服务的调用时,确定所述第二微服务对应的缩减时长;以及,基于所述第一调用请求对应的第一超时时长,确定所述第二微服务对应的第二超时时长,所述第二超时时长对应的超时时刻早于所述第一超时时长对应的超时时刻;
[0013]调用单元,基于所述第一超时时长以及所述缩减时长,向所述第二微服务发起第二调用请求;
[0014]超时执行单元,用于基于所述第二微服务针对所述第二调用请求返回的有损响应,对所述第一调用请求进行处理;所述有损响应为所述第二微服务根据所述第二超时时长以及所述缩减时长确定的实际超时时长,确定所述第二调用请求处理超时时,基于所述第二调用请求的已处理部分返回的

[0015]可选的,所述确定单元,用于:
[0016]当所述第一调用请求的处理过程涉及对所述第二微服务的调用时,确定调用所述第二微服务的预测调用时延,所述预测调用时延为调用所述第二微服务过程中数据传输路径所需消耗的预测时长;
[0017]基于获得的预测调用时延,确定所述缩减时长

[0018]可选的,所述确定单元,用于采用如下方式中的至少一种,确定所述预测调用时延:
[0019]基于历史周期内同一时段调用所述第二微服务时数据传输路径消耗的实际调用时延,确定所述预测调用时延;
[0020]基于所述第一微服务与所述第二微服务之间的网络拓扑信息,确定所述预测调用时延;
[0021]基于调用所述第二微服务的请求数据包的第一特征确定相应的响应数据包的第二特征,并基于所述第一特征与所述第二特征,确定所述预测调用时延

[0022]可选的,所述装置还包括时延统计单元,用于:
[0023]在向所述第二微服务发起第三调用请求时,记录所述第三调用请求的发送时刻;
[0024]在接收所述第二微服务针对所述第三调用请求返回的响应消息时,记录所述响应消息的接收时刻;
[0025]基于所述发送时刻与所述接收时刻确定所述第三调用请求的调用总耗时;
[0026]基于所述响应消息,获取所述第二微服务处理所述第三调用请求的处理总耗时,并基于所述调用总耗时与所述处理总耗时,确定所述第三调用请求的实际调用时延

[0027]可选的,所述时延统计单元,具体用于:
[0028]在所述第三调用请求发送时,读取自身对应的单调时钟的当前时刻数据,确定为所述发送时刻;其中,所述单调时钟的时长数据单调递增;
[0029]在所述响应消息接收时,读取自身对应的单调时钟的当前时刻数据,确定为所述接收时刻

[0030]可选的,所述第二微服务包括位于不同地理位置的多个服务节点,则所述确定单元,具体用于:
[0031]获取对所述多个服务节点进行调用时,各服务节点各自对应的实际调用时延;
[0032]基于获得的各个实际调用时延,对所述多个服务节点进行网络区域划分,获得至
少一个网络区域类别,每个网络区域类别对应一个时延区间,且不同网络区域类别对应的时延区间不同;
[0033]基于所述第二调用请求对应的服务节点所在网络区域类别对应的时延区间,确定所述预测调用时延

[0034]可选的,所述确定单元,具体用于:
[0035]基于所述第一超时时长与所述第一调用请求的已处理耗时之间的差值,确定所述第二超时时长;或者,
[0036]基于所述缩减时长确定所述第二超时时长的至少一个候选值,并将所述至少一个候选值中,超时时刻早于所述第一超时时长对应的超时时刻的候选值确定为所述第二超时时长;或者,
[0037]基于所述第一超时时长与所述缩减时长之间本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.
一种远程过程调用控制方法,其特征在于,应用于微服务集群中的第一微服务,所述第一微服务为微服务集群中的任一微服务,所述方法包括:当接收的第一调用请求的处理过程涉及对第二微服务的调用时,确定所述第二微服务对应的缩减时长;基于所述第一调用请求对应的第一超时时长,确定所述第二微服务对应的第二超时时长,所述第二超时时长对应的超时时刻早于所述第一超时时长对应的超时时刻;基于所述第一超时时长以及所述缩减时长,向所述第二微服务发起第二调用请求;基于所述第二微服务针对所述第二调用请求返回的有损响应,对所述第一调用请求进行处理;所述有损响应为所述第二微服务根据所述第二超时时长以及所述缩减时长确定的实际超时时长,确定所述第二调用请求处理超时时,基于所述第二调用请求的已处理部分返回的
。2.
如权利要求1所述的方法,其特征在于,当接收的第一调用请求的处理过程涉及对第二微服务的调用时,确定所述第二微服务对应的缩减时长,包括:当所述第一调用请求的处理过程涉及对所述第二微服务的调用时,确定调用所述第二微服务的预测调用时延,所述预测调用时延为调用所述第二微服务过程中数据传输路径所需消耗的预测时长;基于获得的预测调用时延,确定所述缩减时长
。3.
如权利要求2所述的方法,其特征在于,采用如下方式中的至少一种,确定所述预测调用时延:基于历史周期内同一时段调用所述第二微服务时数据传输路径消耗的实际调用时延,确定所述预测调用时延;基于所述第一微服务与所述第二微服务之间的网络拓扑信息,确定所述预测调用时延;基于调用所述第二微服务的请求数据包的第一特征确定相应的响应数据包的第二特征,并基于所述第一特征与所述第二特征,确定所述预测调用时延
。4.
如权利要求3所述的方法,其特征在于,在基于历史周期内同一时段调用所述第二微服务时数据传输路径消耗的实际调用时延,确定所述预测调用时延之前,所述方法还包括:在向所述第二微服务发起第三调用请求时,记录所述第三调用请求的发送时刻;在接收所述第二微服务针对所述第三调用请求返回的响应消息时,记录所述响应消息的接收时刻;基于所述发送时刻与所述接收时刻确定所述第三调用请求的调用总耗时;基于所述响应消息,获取所述第二微服务处理所述第三调用请求的处理总耗时,并基于所述调用总耗时与所述处理总耗时,确定所述第三调用请求的实际调用时延
。5.
如权利要求4所述的方法,其特征在于,记录所述第三调用请求的发送时刻,包括:在所述第三调用请求发送时,读取自身对应的单调时钟的当前时刻数据,确定为所述发送时刻;其中,所述单调时钟的时长数据单调递增;记录所述响应消息的接收时刻,包括:在所述响应消息接收时,读取自身对应的单调时钟的当前时刻数据,确定为所述接收时刻

6.
如权利要求3所述的方法,其特征在于,所述第二微服务包括位于不同地理位置的多个服务节点,则基于自身与所述第二微服务之间的网络拓扑信息,确定所述预测调用时延,包括:获取对所述多个服务节点进行调用时,各服务节点各自对应的实际调用时延;基于获得的各个实际调用时延,对所述多个服务节点进行网络区域划分,获得至少一个网络区域类别,每个网络区域类别对应一个时延区间,且不同网络区域类别对应的时延区间不同;基于所述第二调用请求对应的服务节点所在网络区域类别对应的时延区间,确定所述预测调用时延
。7.
如权利要求1~6任一所述的方法,其特征在于,基于所述第一调用请求对应的第一超时时长,确定所述第二微服务对应的第二超时时长,包括:基于所述第一超时时长与所述第一调用请求的已处理耗时之间的差值,确定所述第二超时时长;或者,基于所述缩减时长确定所述第二超时时长的至少一个候选值,并将所述至少一...

【专利技术属性】
技术研发人员:张敏陈咏炜
申请(专利权)人:腾讯数码深圳有限公司
类型:发明
国别省市:

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

1