一种基于数据统计的动态熔断算法及电子设备的制作方法

文档序号:22798149发布日期:2020-11-04 03:53阅读:91来源:国知局
一种基于数据统计的动态熔断算法及电子设备的制作方法

本发明涉及网络服务技术领域,具体涉及一种基于数据统计的动态熔断算法及电子设备。



背景技术:

在网络服务调用中,因为网络环境所具备的不稳定性,网络请求存在着必然的不确定性。为了避免由于网络服务的瞬间崩溃导致的雪崩效应,需要有专门的熔断机制,为了让熔断机制能够起到应有的作用,需要有合理的熔断判断算法。



技术实现要素:

针对现有技术的不足,本发明公开了一种基于数据统计的动态熔断算法及电子设备,旨在避免由于网络服务的瞬间崩溃导致的雪崩效应,让熔断机制能够起到应有的作用。

本发明通过以下技术方案予以实现:

第一方面,本发明公开一种基于数据统计的动态熔断算法,所述算法包括以下步骤:

s1定义若干个滑窗m组成一个环形统计容器,并计算每个滑窗间隔的请求数、错误数和错误率;

s2根据业务系统的特点,定义错误的判断逻辑;

s3对整个环形滑窗进行统计,判断是否触发熔断机制;

s4计算熔断期间整个环形容器中的滑窗平均出错率sum(errorratio)/n,并基于出错率确定尝试概率t;

s5熔断触发机制恢复以后,停止执行熔断运行策略;

s6本次熔断完成,继续指导至下一次熔断机制触发后结束。

更进一步的,所述s1中,定义若干滑窗,每个滑窗有固定的时间间隔,若干个滑窗m组成一个环形统计容器,其中20≦m≦100。

更进一步的,系统请求时,基于请求时间戳落入特定的滑窗内每个滑窗时间间隔,对当前环形容器进行统计,计算每个滑窗间隔的请求数、错误数和错误率。

更进一步的,所述s2中,定义错误的判断逻辑为异常捕获、特定返回值或者超时无响应时判定为错误请求。

更进一步的,所述s3中,针对每个滑窗时间间隔,对整个环形滑窗进行统计,从当前滑窗往前推n个滑窗间隔如果某个滑窗出现错误,则计作出错滑窗,如果出错滑窗超过指定比例r,则触发熔断机制,其中n小于环形容器的大小m。

更进一步的,所述s4中,熔断期间,计算整个环形容器中的滑窗平均出错率,sum(errorratio)/n,并基于出错率确定尝试概率t,具体计算为t=1-sum(errorratio)/n。

第二方面,本发明公开一种电子设备,包括处理器以及存储有执行指令的存储器,当所述处理器执行所述存储器存储的所述执行指令时,所述处理器执行第一方面所述的基于数据统计的动态熔断算法。

本发明的有益效果为:

本发明的熔断处理机制,可以保证数据集群在某些异常场景下,依然能通过相应的熔断机制确保集群可靠正常地工作,避免由于网络服务的瞬间崩溃导致的雪崩效应。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是一种基于数据统计的动态熔断算法的原理步骤图;

图2是本发明实施例的运行图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1

本实施例公开如图1所示的一种基于数据统计的动态熔断算法,包括以下步骤:

s1定义若干个滑窗m组成一个环形统计容器,并计算每个滑窗间隔的请求数、错误数和错误率;

s2根据业务系统的特点,定义错误的判断逻辑;

s3对整个环形滑窗进行统计,判断是否触发熔断机制;

s4计算熔断期间整个环形容器中的滑窗平均出错率sum(errorratio)/n,并基于出错率确定尝试概率t;

s5熔断触发机制恢复以后,停止执行熔断运行策略;

s6本次熔断完成,继续指导至下一次熔断机制触发后结束。

s1中,定义若干滑窗,每个滑窗有固定的时间间隔,若干个滑窗m组成一个环形统计容器,其中20≦m≦100。

系统请求时,基于请求时间戳落入特定的滑窗内每个滑窗时间间隔,对当前环形容器进行统计,计算每个滑窗间隔的请求数、错误数和错误率。

s2中,定义错误的判断逻辑为异常捕获、特定返回值或者超时无响应时判定为错误请求。

s3中,针对每个滑窗时间间隔,对整个环形滑窗进行统计,从当前滑窗往前推n个滑窗间隔如果某个滑窗出现错误,则计作出错滑窗,如果出错滑窗超过指定比例r,则触发熔断机制,其中n小于环形容器的大小m。

s4中,熔断期间,计算整个环形容器中的滑窗平均出错率,sum(errorratio)/n,并基于出错率确定尝试概率t,具体计算为t=1-sum(errorratio)/n。

本实施例的熔断处理机制,可以保证数据集群在某些异常场景下,依然能通过相应的熔断机制确保集群可靠正常地工作,避免由于网络服务的瞬间崩溃导致的雪崩效应。

实施例2

本实施例中,公开一种动态熔断判断及恢复算法,以支持熔断器进行熔断控制,其运行如图2所示;

定义若干滑窗,每个滑窗有固定的时间间隔(比如10秒),若干个滑窗m(20-100)组成一个环形统计容器。系统的每一次请求,会基于请求时间戳落入特定的滑窗内,每个滑窗时间间隔,对当前环形容器进行统计,计算每个滑窗间隔的请求数、错误数、错误率;

错误判断机制:根据业务系统的特点,定义错误的判断逻辑,可以是异常捕获,也可以是特定返回值,或者超时无响应,判定为错误请求;

定义熔断触发机制:每个滑窗时间间隔,对整个环形滑窗进行统计,从当前滑窗往前推n个滑窗间隔(n小于整个环形容器的大小m),如果某个滑窗出现错误,则计作出错滑窗,如果出错滑窗超过指定比例r(比如50%),则触发熔断机制;

熔断期间运行策略:熔断期间,计算整个环形容器中的滑窗平均出错率,sum(errorratio)/n,并基于出错率确定尝试概率t(如:出错率在90%,则保持10%(1-90%)的尝试概率;

当熔断触发机制恢复以后,不再执行熔断运行策略,指导下一次熔断机制触发为止。

实施例3

本实施例公开一种电子设备,包括处理器以及存储有执行指令的存储器,当所述处理器执行所述存储器存储的所述执行指令时,所述处理器执行基于数据统计的动态熔断算法。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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