服务重试的管理方法、装置、电子设备及可读存储介质制造方法及图纸

技术编号:39032483 阅读:14 留言:0更新日期:2023-10-10 11:45
本公开提供了服务重试的管理方法、装置、电子设备及可读存储介质,涉及计算机技术领域,尤其涉及云计算或云服务技术领域。具体方案为:获取在第一时间窗口内由第一服务节点向第二服务节点发出的调用请求的请求耗时,第一服务节点与第二服务节点为服务调用链路中的相邻节点,在服务调用链路中第一服务节点位于第二服务节点的上游,请求耗时为第一时刻与第二时刻之间的时长,第一时刻为第一服务节点发出调用请求的时刻,第二时刻为第一服务节点接收到调用请求的响应结果的时刻;基于请求耗时确定重试时长,重试时长为调用请求的发送时刻与调用请求对应的重试请求的发送时刻之间的时长。本方案能够避免因服务重试造成下游服务节点过载。节点过载。节点过载。

【技术实现步骤摘要】
服务重试的管理方法、装置、电子设备及可读存储介质


[0001]本公开涉及计算机
,尤其涉及云计算或云服务
,具体而言,本公开涉及一种服务重试的管理方法、装置、电子设备及可读存储介质。

技术介绍

[0002]服务调用链路中,经常会由于服务节点故障、网络抖动等临时性故障造成服务调用失败,通过对失败的调用请求进行重试,能够很好地规避这类问题,提升系统可用性。
[0003]现有技术中,对调用请求进行重试会造成服务节点的负载压力,增加系统故障的风险。

技术实现思路

[0004]本公开为了解决上述缺陷中的至少一项,提供了一种服务重试的管理方法、装置、电子设备及可读存储介质。
[0005]根据本公开的第一方面,提供了一种服务重试的管理方法,该方法包括:
[0006]获取在第一时间窗口内由第一服务节点向第二服务节点发出的调用请求的请求耗时,第一服务节点与第二服务节点为服务调用链路中的相邻节点,在服务调用链路中第一服务节点位于第二服务节点的上游,请求耗时为第一时刻与第二时刻之间的时长,第一时刻为第一服务节点发出调用请求的时刻,第二时刻为第一服务节点接收到第二服务节点返回的调用请求的响应结果的时刻;
[0007]基于请求耗时确定重试时长,重试时长为调用请求的发送时刻与调用请求对应的重试请求的发送时刻之间的时长。
[0008]根据本公开的第二方面,提供了一种服务重试的管理装置,该装置包括:
[0009]请求耗时获取模块,用于获取在第一时间窗口内由第一服务节点向第二服务节点发出的调用请求的请求耗时,第一服务节点与第二服务节点为服务调用链路中的相邻节点,在服务调用链路中第一服务节点位于第二服务节点的上游,请求耗时为第一时刻与第二时刻之间的时长,第一时刻为第一服务节点发出调用请求的时刻,第二时刻为第一服务节点接收到第二服务节点返回的调用请求的响应结果的时刻;
[0010]重试时长确定模块,用于基于请求耗时确定重试时长,重试时长为调用请求的发送时刻与调用请求对应的重试请求的发送时刻之间的时长。
[0011]根据本公开的第三方面,提供了一种电子设备,该电子设备包括:
[0012]至少一个处理器;以及
[0013]与上述至少一个处理器通信连接的存储器;其中,
[0014]存储器存储有可被上述至少一个处理器执行的指令,指令被上述至少一个处理器执行,以使上述至少一个处理器能够执行上述服务重试的管理方法。
[0015]根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使计算机执行上述服务重试的管理方法。
[0016]根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现上述服务重试的管理方法。
[0017]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0018]附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0019]图1是服务调用链路因重试而引发系统故障的情况示意图。
[0020]图2是本公开实施例提供的一种服务重试的管理方法的流程示意图;
[0021]图3是基于本公开实施例提供的服务重试的管理方法对服务调用链路进行重试管理的后请求耗时的变化示意图;
[0022]图4是本公开实施例提供的服务重试的管理方法的一种具体实施方式的流程示意图;
[0023]图5是本公开实施例提供的一种服务重试的管理装置的结构示意图;
[0024]图6是用来实现本公开实施例的服务重试的管理方法的电子设备的框图。
具体实施方式
[0025]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0026]服务调用链路中一般会包含多级的服务节点,上游的服务节点可以向下游节点发送调用请求,以调用下游节点完成特定的业务功能。服务节点中可能会存在节点故障、网络抖动、因资源竞争导致的节点性能瓶颈等问题,造成服务节点的临时故障,通过对失败的调用请求进行重试,能够规避这类问题,提升系统可用性。
[0027]对调用请求进行重试会造成服务节点的负载压力,因此需要对重试请求进行有效管理,以避免导致下游服务节点的过载。
[0028]相关技术中会提供一些重试策略用于对重试请求进行控制,但是这些重试策略未充分考虑被调用的下游服务节点的运行状态,在下游服务节点处于高负载状态时,对下游服务节点的重试请求易造成过载,进而引发服务调用链路的系统故障。
[0029]作为一个示例,图1中示出了服务调用链路因重试而引发系统故障的情况示意图。
[0030]如图1中所示,该服务调用链路包括服务节点A、服务节点B以及服务节点C,其中,服务节点B位于服务节点C的上游,服务节点A位于服务节点B的上游,服务节点B可调用服务节点C,服务节点A可调用服务节点B。
[0031]图1中由上至下依次列的各组A

B

C构成四个子图,各子图用于表示随时间推移,该服务调用链路中各服务节点的负载情况。由上至下的第一个子图中表示服务调用链路中各服务节点的负载状态为正常,此时服务节点C的负载状态为满负荷运行。由上至下的第二个子图中表示服务链路中服务节点C过载。由于网络抖动等原因,服务节点B向服务节点C增发少量重试请求,服务节点C本已处于满负荷运行,服务节点B增发的重试请求数量会增加,
进而导致服务节点C过载。由上至下的第三个子图中表示服务链路中服务节点B以及服务节点C均过载。在服务节点C过载后,调用请求会在服务节点B排队,导致服务节点B的性能下将,这使得服务节点A向服务节点B的调用请求会大量失败,服务节点A会向服务节点B增发重试请求,直至服务节点B过载。由上至下的第三个子图中表示服务链路中服务节点A、服务节点B以及服务节点C均过载。服务节点C的故障会沿服务调用链路传导至上游的服务节点B。同样,服务节点B的故障会沿服务调用链路传导至上游的服务节点A,直至整个系统故障。
[0032]图1中故障逐级传导箭头表示随着时间的推移,故障会沿服务调用链路由下游的服务节点传导至上游的服务节点。重试流量指数级增长,表示随着下游服务节点故障情况的加剧,上游节点向下游节点发送的重试请求的数量会迅速增加。
[0033]由图1中示例可见,服务调用链路上的某服务节点发生故障时,故障会朝向上游逐级传导,最终造成系统整体故障,因此需要对服务调用链路中各级的重试请求的数量进行有效控制,以避免因发送重试请求导致的节点过载,从而避免因服务节点故障的多级传本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种服务重试的管理方法,包括:获取在第一时间窗口内由第一服务节点向第二服务节点发出的调用请求的请求耗时,所述第一服务节点与所述第二服务节点为服务调用链路中的相邻节点,在所述服务调用链路中所述第一服务节点位于所述第二服务节点的上游,所述请求耗时为第一时刻与第二时刻之间的时长,所述第一时刻为所述第一服务节点发出所述调用请求的时刻,所述第二时刻为所述第一服务节点接收到所述第二服务节点返回的所述调用请求的响应结果的时刻;基于所述请求耗时确定重试时长,所述重试时长为所述调用请求的发送时刻与所述调用请求对应的重试请求的发送时刻之间的时长。2.根据权利要求1所述的方法,其中,所述基于所述请求耗时确定重试时长,包括:将各所述调用请求的请求耗时中指定分位数的请求耗时确定为重试时长。3.根据权利要求1或2所述的方法,还包括:响应于所述第二服务节点对所述调用请求的响应情况满足预设的调用失败条件,生成所述调用请求对应的重试请求。4.根据权利要求1

3中任一项所述的方法,还包括:获取第二时间窗口内所述第一服务节点向所述第二服务节点发出的调用请求中重试请求的当前占比,所述第二时间窗口的结束时间为当前时刻,所述第二时间窗口的长度为指定时长;基于所述当前占比与预设的占比阈值,对所述第一服务节点向所述第二服务节点发送的重试请求的数量进行控制。5.根据权利要求4所述的方法,其中,所述基于所述当前占比与预设的占比阈值,对所述第一服务节点向所述第二服务节点发出的重试请求进行控制,包括:响应于所述当前占比不小于预设的占比阈值,依照预设的限流策略减少所述第一服务节点向所述第二服务节点发出的重试请求的数量,直至所述当前占比小于预设的占比阈值。6.根据权利要求5所述的方法,其中,所述依照预设的限流策略减少所述第一服务节点向所述第二服务节点发出的重试请求的数量,包括:控制所述第一服务节点停止向所述第二服务节点发送重试请求。7.根据权利要求5所述的方法,其中,所述依照预设的限流策略减少所述第一服务节点向所述第二服务节点发出的重试请求的数量,包括:基于所述第二时间窗口内所述第一服务节点向所述第二服务节点发出的调用请求的请求耗时,确定所述第二服务节点的负载状态;基于所述负载状态确定重试请求数量阈值;在当前时刻之后的各第三时间窗口内,控制第一服务节点向所述第二服务节点发出的重试请求的数量不大于所述重试请求数量阈值。8.根据权利要求7所述的方法,其中,所述基于所述第二时间窗口内所述第一服务节点向所述第二服务节点发出的调用请求的请求耗时,确定所述第二服务节点的当前负载状态,包括:基于预设的请求耗时与负载状态的第一对应关系,并基于所述第二时间窗口内所述第一服务节点向所述第二服务节点发出的调用请求的请求耗时,确定所述第二服务节点的负
载状态。9.根据权利要求7或8的方法,其中,所述基于所述负载状态确定重试请求数量阈值,包括:基于预设的负载状态与重试请求数量阈值的第二对应关系,确定与所述第二服务节点的负载状态对应的重试请求数量阈值。10.根据权利要求1

9中任一项的方法,其中,还包括:在第四时间窗口内基于预设的令牌桶内是否剩余令牌,向所述调用请求分配令牌,在所述第四时间窗口内所述令牌桶内被分配有预设数量的所述令牌;响应于所述调用请求被分配了令牌,将所述调用请求发送至所述第二服务节点。11.一种服务重试的...

【专利技术属性】
技术研发人员:李俊项连志谢良辉
申请(专利权)人:阿波罗智联北京科技有限公司
类型:发明
国别省市:

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

1