接口熔断方法、接口熔断装置和计算机可读存储介质与流程

专利2026-05-09  4


本技术涉及计算机,特别是涉及接口熔断方法、接口熔断装置和计算机可读存储介质。


背景技术:

1、在上游业务系统与下游业务系统的数据交互场景下,或者上游业务系统与第三方业务系统的数据交互场景下,往往需要由上游业务系统调用下游业务系统或第三方业务系统的业务接口以实现业务处理。其中,当下游业务系统或第三方业务接口出现响应异常时,例如,出现必填字段缺失、余额不足等业务失败的响应时,目前的上游业务系统往往并未对对应业务接口的调用失败设置对应的业务逻辑处理,因而导致上游业务系统不断调用异常的业务接口,从而导致上游业务系统的业务处理存在较高的失败率。

2、因此,目前相关技术中尚存在对于接口调用存在较高失败率的问题。


技术实现思路

1、在本实施例中提供了一种接口熔断方法、接口熔断装置和计算机可读存储介质,以解决相关技术中对于接口调用存在较高失败率的问题。

2、第一个方面,在本实施例中提供了一种接口熔断方法,包括:

3、基于目标前置通知,获取接口的目标方法的元信息和熔断配置参数,并根据所述熔断配置参数和断路器当前状态,确认所述目标方法是否满足调用条件;若是,则调用所述目标方法;其中,所述目标前置通知为预先为所述目标方法配置的aop切面的前置通知;

4、基于目标后置通知,判断所述目标方法是否调用成功;若是,则根据所述目标方法的元信息,执行预先配置的熔断规则;若所述熔断规则执行结果为真,则对调用次数和调用错误次数进行计数;其中,所述目标后置通知为预先为所述目标方法配置的aop切面的后置通知;

5、若所述目标方法调用失败,则根据所述熔断配置参数对所述调用次数和所述调用错误次数进行计数;

6、根据预设的滑动时间窗口内的所述调用次数和所述调用错误次数,结合所述熔断配置参数,判断是否对所述目标方法执行熔断处理;若是,则对所述目标方法进行熔断处理。

7、在其中的一些实施例中,根据所述熔断配置参数和断路器当前状态,确认所述目标方法是否满足调用条件,包括:

8、在所述熔断配置参数不为空,且所述断路器当前状态为关闭的情况下,确认所述目标方法满足调用条件。

9、在其中的一些实施例中,根据所述熔断配置参数和断路器当前状态,确认所述目标方法是否满足调用条件,包括:

10、在所述熔断配置参数不为空,且所述断路器当前状态为开启的情况下,判断当前时间戳是否大于或等于下次重试时间戳;若是,则将所述断路器当前状态设置为半开,并确认所述目标方法满足调用条件;其中,所述下次重试时间戳根据所述熔断配置参数指定的熔断时长,和上次对所述目标方法进行熔断处理所对应的时间戳确定;

11、否则,确认所述目标方法不满足调用条件,执行预设的熔断降级策略。

12、在其中的一些实施例中,根据所述熔断配置参数和断路器当前状态,确认所述目标方法是否满足调用条件,包括:

13、在所述熔断配置参数不为空,且所述断路器当前状态为半开的情况下,确认所述目标方法不满足调用条件,执行预设的熔断降级策略。

14、在其中的一些实施例中,所述方法还包括:

15、在所述熔断配置参数为空的情况下,确认所述目标方法满足调用条件。

16、在其中的一些实施例中,在所述目标方法调用失败时,根据所述熔断配置参数对所述调用次数和所述调用错误次数进行计数,包括:

17、在所述目标方法调用失败时,获取导致所述目标方法调用失败的调用异常类型;

18、判断所述调用异常类型是否与所述熔断配置参数中指定的预设异常类型一致;若是,则在当前的滑动时间窗口内,对所述方法调用次数和所述方法调用错误次数进行计数。

19、在其中的一些实施例中,根据预设的滑动时间窗口内的所述调用次数和所述调用错误次数,结合所述熔断配置参数,判断是否对所述目标方法执行熔断处理,包括:

20、在所述熔断配置参数指定的熔断判断条件为异常数,所述调用次数大于或等于所述熔断配置参数指定的最小请求数,且所述调用错误次数大于或等于所述熔断配置参数指定的次数阈值时,确认对所述目标方法执行熔断处理,将所述断路器当前状态置为开启,根据指定的熔断时长设置下次重试时间戳;

21、在所述熔断判断条件为异常比例,所述调用次数大于或等于所述最小请求数,且调用错误比例大于或等于所述熔断配置参数指定的比例阈值时,确认对所述目标方法执行熔断处理,将所述断路器当前状态置为开启,根据所述熔断时长设置下次重试时间戳;所述调用错误比例为所述调用错误次数与所述调用次数的比值。

22、在其中的一些实施例中,所述滑动时间窗口的时长根据所述熔断配置参数指定的熔断统计时长设定;所述滑动时间窗口内包括若干个子时间窗口区间。

23、第二个方面,在本实施例中提供了一种接口熔断装置,包括:获取模块、判断模块、计数模块以及熔断处理模块;其中:

24、所述获取模块,用于基于目标前置通知,获取接口的目标方法的元信息和熔断配置参数,并根据所述熔断配置参数和断路器当前状态,确认所述目标方法是否满足调用条件;若是,则调用所述目标方法;其中,所述目标前置通知为预先为所述目标方法配置的aop切面的前置通知;

25、所述判断模块,用于基于目标后置通知,判断所述目标方法是否调用成功;若是,则根据所述目标方法的元信息,执行预先配置的熔断规则;若所述熔断规则执行结果为真,则对调用次数和调用错误次数进行计数;其中,所述目标后置通知为预先为所述目标方法配置的aop切面的后置通知;

26、所述计数模块,用于若所述目标方法调用失败,则根据所述熔断配置参数对所述调用次数和所述调用错误次数进行计数;

27、所述熔断处理模块,用于根据预设的滑动时间窗口内的所述调用次数和所述调用错误次数,结合所述熔断配置参数,判断是否对所述目标方法执行熔断处理;若是,则对所述目标方法进行熔断处理。

28、第三个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的接口熔断方法。

29、与相关技术相比,在本实施例中提供了接口熔断方法、接口熔断装置和计算机可读存储介质。其中的接口熔断方法,基于目标前置通知,获取接口的目标方法的元信息和熔断配置参数,并根据熔断配置参数和断路器当前状态,确认目标方法是否满足调用条件;若是,则调用目标方法;其中,目标前置通知为预先为目标方法配置的aop切面的前置通知;基于目标后置通知,判断目标方法是否调用成功;若是,则根据目标方法的元信息,执行预先配置的熔断规则;若熔断规则执行结果为真,则对调用次数和调用错误次数进行计数;其中,目标后置通知为预先为目标方法配置的aop切面的后置通知;若目标方法调用失败,则根据熔断配置参数对调用次数和调用错误次数进行计数;根据预设的滑动时间窗口内的调用次数和调用错误次数,结合熔断配置参数,判断是否对目标方法执行熔断处理;若是,则对目标方法进行熔断处理。其能够通过aop切面实现对目标方法的熔断判断,对于满足熔断触发条件的目标方法及时进行熔断处理,从而避免响应失败的业务接口被频繁调用而出现较高的失败率。

30、本技术的一个或多个实施例的细节在以下附图和描述中提出,以使本技术的其他特征、目的和优点更加简明易懂。


技术特征:

1.一种接口熔断方法,其特征在于,包括:

2.根据权利要求1所述的接口熔断方法,其特征在于,根据所述熔断配置参数和断路器当前状态,确认所述目标方法是否满足调用条件,包括:

3.根据权利要求1所述的接口熔断方法,其特征在于,根据所述熔断配置参数和断路器当前状态,确认所述目标方法是否满足调用条件,包括:

4.根据权利要求1所述的接口熔断方法,其特征在于,根据所述熔断配置参数和断路器当前状态,确认所述目标方法是否满足调用条件,包括:

5.根据权利要求1所述的接口熔断方法,其特征在于,所述方法还包括:

6.根据权利要求1所述的接口熔断方法,其特征在于,在所述目标方法调用失败时,根据所述熔断配置参数对所述调用次数和所述调用错误次数进行计数,包括:

7.根据权利要求1所述的接口熔断方法,其特征在于,根据预设的滑动时间窗口内的所述调用次数和所述调用错误次数,结合所述熔断配置参数,判断是否对所述目标方法执行熔断处理,包括:

8.根据权利要求1至权利要求7中任一项所述的接口熔断方法,其特征在于,所述滑动时间窗口的时长根据所述熔断配置参数指定的熔断统计时长设定;所述滑动时间窗口内包括若干个子时间窗口区间。

9.一种接口熔断装置,其特征在于,包括:获取模块、判断模块、计数模块以及熔断处理模块;其中:

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至权利要求8中任一项所述的接口熔断方法的步骤。


技术总结
本申请涉及一种接口熔断方法、接口熔断装置和计算机可读存储介质,其中,该接口熔断方法包括:根据熔断配置参数和断路器当前状态,确认目标方法是否满足调用条件;判断目标方法是否调用成功;若是,则根据目标方法的元信息,执行预先配置的熔断规则;若熔断规则执行结果为真,则对调用次数和调用错误次数进行计数;若目标方法调用失败,根据预设的滑动时间窗口内的调用次数和调用错误次数,结合熔断配置参数,判断是否对目标方法执行熔断处理;若是,则对目标方法进行熔断处理。其能够通过AOP切面实现对目标方法的熔断判断,对于满足熔断触发条件的目标方法及时进行熔断处理,从而避免响应失败的业务接口被频繁调用而出现较高的失败率。

技术研发人员:彭念
受保护的技术使用者:杭州乒乓智能技术有限公司
技术研发日:
技术公布日:2024/11/11
转载请注明原文地址: https://tieba.8miu.com/read-21097.html

最新回复(0)