CN116248483A - 一种节点异常熔断方法、装置、电子设备及存储介质 - Google Patents
一种节点异常熔断方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116248483A CN116248483A CN202211619707.1A CN202211619707A CN116248483A CN 116248483 A CN116248483 A CN 116248483A CN 202211619707 A CN202211619707 A CN 202211619707A CN 116248483 A CN116248483 A CN 116248483A
- Authority
- CN
- China
- Prior art keywords
- linked list
- call
- failure rate
- node
- fusing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0659—Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0677—Localisation of faults
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
Abstract
本公开关于一种节点异常熔断方法、装置、电子设备及存储介质,包括:获取目标节点对应的预设链表;预设链表由多个具有逻辑顺序的链表单元组成;按照预设周期,获取针对目标节点的调用请求的调用失败率,并将调用失败率依次存储至链表单元中;随机生成预设周期对应的熔断阈值;熔断阈值的取值范围在0至1之间;在调用失败率小于熔断阈值的情况下,触发目标节点的熔断机制。这样,根据随机生成的熔断阈值判断是否对目标节点进行熔断,当失败率升高时,随机数生成区间小于失败率的概率也会增高,失败率降低时,随机数生成区间小于失败率的概率也会降低,启动兜底方案的概率也会越低,从而实现目标节点的资源隔离和自我恢复功能。
Description
技术领域
本公开涉及互联网技术领域,尤其涉及一种节点异常熔断方法、装置、电子设备及存储介质。
背景技术
在高并发系统中进行请求调用时,若系统所依赖的服务发生错误,很可能导致调用异常或调用时间过长等问题,造成系统的长时间等待或系统资源耗尽。由于各个服务节点之间通过网络进行通讯,难免出现依赖关系,若某一个节点出现故障,就很容易因依赖关系而引发故障的蔓延,产生“雪崩效应”,最终导致整个系统的瘫痪。
相关技术中,可以通过设置请求的超时时间,如http(HyperTextTransferProtocol,超文本传输协议)请求中的ConnectTimeout(客户端与服务端建立连接过程的超时时间)和ReadTimeout(客户端等待服务端返回的最长等待时间);或者,可以采用熔断器模式,隔离问题服务,防止级联错误。但是,上述方式需要引入开源的组件进行资源隔离自我修复,因此,需要调整系统的整体架构,而且开源组件过于冗余,耦合性过高,需要耗费较高的开发成本。
发明内容
本公开提供一种节点异常熔断系统、方法、装置、电子设备及存储介质,以至少解决相关技术中需要引入开源的组件进行资源隔离自我修复,因此,需要调整系统的整体架构,而且开源组件过于冗余,耦合性过高,需要耗费较高的开发成本的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种节点异常熔断方法,包括:
获取目标节点对应的预设链表;所述预设链表由多个具有逻辑顺序的链表单元组成;
按照预设周期,获取针对所述目标节点的调用请求的调用失败率,并将所述调用失败率依次存储至所述链表单元中;
随机生成所述预设周期对应的熔断阈值;所述熔断阈值的取值范围在0至1之间;
在所述调用失败率小于所述熔断阈值的情况下,触发所述目标节点的熔断机制。
可选地,在所述调用失败率大于或等于所述熔断阈值的情况下,所述方法还包括:
对针对所述目标节点的调用请求进行响应。
可选地,所述将所述调用失败率依次存储至所述链表单元中,包括:
在所述预设链表中存在未被访问的链表单元的情况下,将未被访问的链表单元中所述逻辑顺序最前的作为目标链表单元,将所述调用失败率存储至所述目标链表单元中;
在所述预设链表中不存在未被访问的链表单元的情况下,将链表单元中访问时间距离当前时间最久的作为目标链表单元,将所述调用失败率存储至所述目标链表单元中。
可选地,所述预设链表为哈希链表。
可选地,所述按照预设周期,获取针对所述目标节点的调用请求的调用失败率,并将所述调用失败率依次存储至所述链表单元中,包括:
按照预设周期,获取针对所述目标节点的调用请求的调用总量及失败量,并将所述调用总量及所述失败量依次存储至所述链表单元中;
将所述失败量与所述调用总量相除,得到针对所述目标节点的调用请求的调用失败率。
可选地,所述触发所述目标节点的熔断机制,包括:
向针对所述目标节点的调用请求返回预设值。
根据本公开实施例的第二方面,提供一种节点异常熔断装置,包括:
获取模块,用于获取目标节点对应的预设链表;所述预设链表由多个具有逻辑顺序的链表单元组成;
存储模块,用于按照预设周期,获取针对所述目标节点的调用请求的调用失败率,并将所述调用失败率依次存储至所述链表单元中;
生成模块,用于随机生成所述预设周期对应的熔断阈值;所述熔断阈值的取值范围在0至1之间;
判断模块,用于在所述调用失败率小于所述熔断阈值的情况下,触发所述目标节点的熔断机制。
可选地,所述判断模块,还用于:
在所述调用失败率大于或等于所述熔断阈值的情况下,对针对所述目标节点的调用请求进行响应。
可选地,所述存储模块,用于:
在所述预设链表中存在未被访问的链表单元的情况下,将未被访问的链表单元中所述逻辑顺序最前的作为目标链表单元,将所述调用失败率存储至所述目标链表单元中;
在所述预设链表中不存在未被访问的链表单元的情况下,将链表单元中访问时间距离当前时间最久的作为目标链表单元,将所述调用失败率存储至所述目标链表单元中。
可选地,所述预设链表为哈希链表。
可选地,所述存储模块,用于:
按照预设周期,获取针对所述目标节点的调用请求的调用总量及失败量,并将所述调用总量及所述失败量依次存储至所述链表单元中;
将所述失败量与所述调用总量相除,得到针对所述目标节点的调用请求的调用失败率。
可选地,所述判断模块,用于:
向针对所述目标节点的调用请求返回预设值。
根据本公开实施例的第三方面,提供一种节点异常熔断电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现所述任一项所述的节点异常熔断方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由节点异常熔断电子设备的处理器执行时,使得节点异常熔断电子设备能够执行所述任一项所述的节点异常熔断方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现所述任一项所述的节点异常熔断方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
获取目标节点对应的预设链表;预设链表由多个具有逻辑顺序的链表单元组成;按照预设周期,获取针对目标节点的调用请求的调用失败率,并将调用失败率依次存储至链表单元中;随机生成预设周期对应的熔断阈值;熔断阈值的取值范围在0至1之间;在调用失败率小于熔断阈值的情况下,触发目标节点的熔断机制。
这样,根据随机生成的熔断阈值判断是否对目标节点进行熔断,当失败率升高时,随机数生成区间小于失败率的概率也会增高,失败率降低时,随机数生成区间小于失败率的概率也会降低,启动兜底方案的概率也会越低,从而实现目标节点的资源隔离和自我恢复功能,而且不需要调整系统的整体架构,开发成本较低。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种节点异常熔断方法的流程图。
图2是根据一示例性实施例示出的一种高并发系统中产生“雪崩效应”的示意图。
图3是根据一示例性实施例示出的一种链表数据存储与更新主要逻辑示意图。
图4是根据一示例性实施例示出的一种调用失败率更新权重的主要逻辑示意图。
图5是根据一示例性实施例示出的一种节点异常熔断方法的流程图。
图6是根据一示例性实施例示出的一种节点异常熔断装置的框图。
图7是根据一示例性实施例示出的一种用于节点异常熔断的电子设备的框图。
图8是根据一示例性实施例示出的一种用于节点异常熔断的装置的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及所述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种节点异常熔断方法的流程图,如图1所示,该节点异常熔断方法包括:
在步骤S11中,获取目标节点对应的预设链表;预设链表由多个具有逻辑顺序的链表单元组成。
在高并发系统中,各个服务节点之间通过网络进行通讯,具有依赖关系,若某一个节点出现故障,就很容易因依赖关系而引发故障的蔓延,产生“雪崩效应”,最终导致整个系统的瘫痪。
如图2所示,为高并发系统中产生“雪崩效应”的示意图,虚线表示的节点为不可用节点,实现表示的节点为可用节点。其中,A节点作为服务提供者,B节点为A节点的服务消费者,C节点和D节点是B节点的服务消费者,那么,A节点的不可用很可能引起B节点的不可用,进而,B节点的不可用很可能引起C节点和D节点的不可用,这样,各个节点的不可用像滚雪球一样放大,雪崩效应就形成了。
相关技术中,可以采用熔断器模式,隔离问题服务,防止级联错误,熔断器模式其实就是对服务的调用做了一层代理,对最近服务固定时间段调用错误次数进行统计,如果达到指定次数,则直接返回失败,并允许再接下的时间段内允许个别调用者测试调用服务,如果成功则认为服务已正常,允许后面服务的正常调用,否则继续返回失败。
但是,上述熔断器模式对节点是否启动兜底策略以及是否恢复正常调用的判断都较为单一,需要进行进一步改进。
在本申请中,目标节点即为需要进行故障判断的节点,每个目标节点都具有其对应的预设链表,预设链表由多个具有逻辑顺序的链表单元组成,链表是一种物理存储单元上非连续、非顺序的存储结构,链表单元的逻辑顺序是通过链表中的指针链接次序实现的。
在步骤S12中,按照预设周期,获取针对目标节点的调用请求的调用失败率,并将调用失败率依次存储至链表单元中。
在本步骤中,可以按照预设周期,获取针对目标节点的调用请求的调用失败率,并将调用失败率依次存储至链表单元中,其中,预设周期可以是1分钟,也可以是1秒,具体不做限定。
调用失败率是指在预设周期内,目标节点对调用请求的调用失败量与其接收到的调用请求的总数量的比值。
调用失败率依次存储在预设链表的链表单元中,也就是按照各个链表单元的逻辑顺序,将当前预设周期内的调用失败率存储在上一个预设周期对应的链表单元的下一个链表单元内。
一种实现方式中,将调用失败率依次存储至链表单元中,包括:
在预设链表中存在未被访问的链表单元的情况下,将未被访问的链表单元中逻辑顺序最前的作为目标链表单元,将调用失败率存储至目标链表单元中;在预设链表中不存在未被访问的链表单元的情况下,将访问时间距离当前时间最久的链表单元作为目标链表单元,将调用失败率存储至目标链表单元中。
也就是说,预设链表的长度是有限的,在将调用失败率依次存储至链表单元的过程中,首先,将调用失败率依次存储至各个链表单元中,当各个链表单元均被访问过之后,如果再获取到新的调用失败率,那么,可以将调用失败率存储至访问时间距离当前时间最久的链表单元中,换句话说,删除存储最早的调用失败率的链表单元中的数据,并将当前预设周期内的调用失败率存储至该链表单元中。
这样,根据时间新增并覆盖最近不经常访问的节点,整体而言会保持固定长度的链表,不需要考虑内存溢出问题。
一种实现方式中,预设链表为哈希链表。哈希表是一个通过哈希函数来计算数据存储位置的数据结构,可以理解,采用哈希链表更新调用记录简洁高效,实时性高。
一种实现方式中,按照预设周期,获取针对目标节点的调用请求的调用失败率,并将调用失败率依次存储至链表单元中,包括:
按照预设周期,获取针对目标节点的调用请求的调用总量及失败量,并将调用总量及失败量依次存储至链表单元中;将失败量与调用总量相除,得到针对目标节点的调用请求的调用失败率。
也就是说,在链表单元中存储对目标节点的调用请求的调用总量及失败量,根据调用总量及失败量可以计算调用失败率,而不是直接将调用失败率存储至链表单元中。
这样,可以在后续计算过程中提供更多的数据,便于对目标节点的调用情况进行进一步分析。
举例来说,如图3所示,为链表数据存储与更新主要逻辑示意图。其中,设置固定长度的预设链表,假如预设链表的长度为4,根据调用情况在预设链表中更新当前时刻的调用总量和失败量,比如,各个链表单元分别记录了00时刻的调用总量和失败量,分别为93和3,01时刻的调用总量和失败量,分别为63和3,02时刻的调用总量和失败量,分别为23和3,03时刻的调用总量和失败量,分别为33和3。
此时,各个链表单元均已被访问,则04时刻需要记录时,会删除掉00时刻对应的链表单元中存储的数据,将04时刻的调用总量和失败量,分别为33和3更新至该链表单元中。
在步骤S13中,随机生成预设周期对应的熔断阈值;熔断阈值的取值范围在0至1之间。
在本步骤中,采用任意的随机数生成算法,生成预设周期对应的熔断阈值,熔断阈值的取值范围在0至1之间,根据熔断阈值,可以判断是否需要启动对目标节点的熔断机制。
在步骤S14中,在调用失败率小于熔断阈值的情况下,触发目标节点的熔断机制。
由前述可知,熔断阈值是在0至1之间随机生成的,因此,熔断阈值在各个数值的取值概率是相同的,那么,调用失败率越高,则熔断阈值取值小于调用失败率的可能性就越高,反之,调用失败率越低,则熔断阈值取值小于调用失败率的可能性就越低。
这样,本申请统计的是实时失败率,采用判断当前失败率按照一定比例触发兜底方案,在调用失败率下降时能自动减少启动熔断机制。
在本申请中,熔断机制可以包括多种不同的策略,比如,可以是接收调用请求后不对调用请求进行进一步处理,也可以是拒绝接收新的调用请求,等等,可以根据具体的业务场景进行设定,具体不做限定。
一种实现方式中,触发目标节点的熔断机制,包括:向针对目标节点的调用请求返回预设值。也就是说,向发送调用请求的其他节点返回预设值,这样,其他节点根据预设值,可以确定目标节点已发生故障,进而不再继续发送调用请求,有利于维护系统的稳定。
一种实现方式中,在调用失败率大于或等于熔断阈值的情况下,方法还包括:对针对目标节点的调用请求进行响应。
也就是说,调用失败率大于或等于熔断阈值,那么,目标节点可以对调用请求进行响应,执行相应的操作或处理,这样,有利于及时对目标节点的故障情况进行更新,实现目标节点的自我恢复。
如图4所示,为调用失败率更新权重的主要逻辑示意图。其中,首先计算每个预设周期的调用失败率,并获取取值范围在0-1之间的随机数,作为启动熔断机制的熔断阈值,然后,将目标节点的调用失败率和生成的随机数比较,随机数小于失败率时,触发兜底方案,否则,随机数大于或等于失败率时,向下调用。
这样,当失败率升高时,随机数生成区间小于失败率的概率也会增高,失败率降低时,随机数生成区间小于失败率的概率也会降低,启动兜底方案的概率也会越低。
由以上可见,本公开的实施例提供的技术方案,根据随机生成的熔断阈值判断是否对目标节点进行熔断,当失败率升高时,随机数生成区间小于失败率的概率也会增高,失败率降低时,随机数生成区间小于失败率的概率也会降低,启动兜底方案的概率也会越低,从而实现目标节点的资源隔离和自我恢复功能,而且不需要调整系统的整体架构,开发成本较低。
图5是根据一示例性实施例示出的一种节点异常熔断方法的流程图,如图1所示,该节点异常熔断方法包括:
在步骤S21中,获取目标节点对应的预设链表;预设链表由多个具有逻辑顺序的链表单元组成。
在高并发系统中,各个服务节点之间通过网络进行通讯,具有依赖关系,若某一个节点出现故障,就很容易因依赖关系而引发故障的蔓延,产生“雪崩效应”,最终导致整个系统的瘫痪。
比如,A节点作为服务提供者,B节点为A节点的服务消费者,C节点和D节点是B节点的服务消费者,那么,A节点的不可用很可能引起B节点的不可用,进而,B节点的不可用很可能引起C节点和D节点的不可用,这样,各个节点的不可用像滚雪球一样放大,雪崩效应就形成了。
相关技术中,可以采用熔断器模式,隔离问题服务,防止级联错误。熔断器模式其实就是对服务的调用做了一层代理,对最近服务固定时间段调用错误次数进行统计,如果达到指定次数,则直接返回失败,并允许再接下的时间段内允许个别调用者测试调用服务,如果成功则认为服务已正常,允许后面服务的正常调用,否则继续返回失败。但是,上述熔断器模式对节点是否启动兜底策略以及是否恢复正常调用的判断都较为单一,需要进行进一步改进。
在本申请中,目标节点即为需要进行故障判断的节点,每个目标节点都具有其对应的预设链表,预设链表由多个具有逻辑顺序的链表单元组成,链表是一种物理存储单元上非连续、非顺序的存储结构,链表单元的逻辑顺序是通过链表中的指针链接次序实现的。
一种实现方式中,预设链表为哈希链表。哈希表是一个通过哈希函数来计算数据存储位置的数据结构,可以理解,采用哈希链表更新调用记录简洁高效,实时性高。
在步骤S22中,按照预设周期,获取针对目标节点的调用请求的调用总量及失败量。
在本步骤中,可以按照预设周期,获取针对目标节点的调用请求的调用失败率,其中,预设周期可以是1分钟,也可以是1秒,具体不做限定。
也就是说,在链表单元中存储对目标节点的调用请求的调用总量及失败量,根据调用总量及失败量可以计算调用失败率,而不是直接将调用失败率存储至链表单元中。这样,可以在后续计算过程中提供更多的数据,便于对目标节点的调用情况进行进一步分析。
在步骤S23中,在预设链表中存在未被访问的链表单元的情况下,将未被访问的链表单元中逻辑顺序最前的作为目标链表单元,将调用失败率存储至目标链表单元中;在预设链表中不存在未被访问的链表单元的情况下,将访问时间距离当前时间最久的链表单元作为目标链表单元,将调用失败率存储至目标链表单元中。
也就是说,预设链表的长度是有限的,在将调用失败率依次存储至链表单元的过程中,首先,将调用失败率依次存储至各个链表单元中,当各个链表单元均被访问过之后,如果再获取到新的调用失败率,那么,可以将调用失败率存储至访问时间距离当前时间最久的链表单元中,换句话说,删除存储最早的调用失败率的链表单元中的数据,并将当前预设周期内的调用失败率存储至该链表单元中。
这样,根据时间新增并覆盖最近不经常访问的节点,整体而言会保持固定长度的链表,不需要考虑内存溢出问题。
在步骤S24中,将失败量与调用总量相除,得到针对目标节点的调用请求的调用失败率。
调用失败率是指在预设周期内,目标节点对调用请求的调用失败量与其接收到的调用请求的总数量的比值。调用失败率依次存储在预设链表的链表单元中,也就是按照各个链表单元的逻辑顺序,将当前预设周期内的调用失败率存储在上一个预设周期对应的链表单元的下一个链表单元内。
举例来说,设置固定长度的预设链表,假如预设链表的长度为4,根据调用情况在预设链表中更新当前时刻的调用总量和失败量,比如,各个链表单元分别记录了00时刻的调用总量和失败量,分别为93和3,01时刻的调用总量和失败量,分别为63和3,02时刻的调用总量和失败量,分别为23和3,03时刻的调用总量和失败量,分别为33和3,此时,各个链表单元均已被访问,则04时刻需要记录时,会删除掉00时刻对应的链表单元中存储的数据,将04时刻的调用总量和失败量,分别为33和3更新至该链表单元中。
在步骤S25中,随机生成预设周期对应的熔断阈值;熔断阈值的取值范围在0至1之间。
在本步骤中,采用任意的随机数生成算法,生成预设周期对应的熔断阈值,熔断阈值的取值范围在0至1之间,根据熔断阈值,可以判断是否需要启动对目标节点的熔断机制。
在步骤S26中,在调用失败率小于熔断阈值的情况下,触发目标节点的熔断机制;在调用失败率大于或等于熔断阈值的情况下,对针对目标节点的调用请求进行响应。
由前述可知,熔断阈值是在0至1之间随机生成的,因此,熔断阈值在各个数值的取值概率是相同的,那么,调用失败率越高,则熔断阈值取值小于调用失败率的可能性就越高,反之,调用失败率越低,则熔断阈值取值小于调用失败率的可能性就越低。
这样,本申请统计的是实时失败率,采用判断当前失败率按照一定比例触发兜底方案,在调用失败率下降时能自动减少启动熔断机制。
在本申请中,熔断机制可以包括多种不同的策略,比如,可以是接收调用请求后不对调用请求进行进一步处理,也可以是拒绝接收新的调用请求,等等,可以根据具体的业务场景进行设定,具体不做限定。
在调用失败率大于或等于熔断阈值的情况下,对针对目标节点的调用请求进行响应,也就是说,调用失败率大于或等于熔断阈值,那么,目标节点可以对调用请求进行响应,执行相应的操作或处理,这样,有利于及时对目标节点的故障情况进行更新,实现目标节点的自我恢复。
一种实现方式中,触发目标节点的熔断机制,包括:向针对目标节点的调用请求返回预设值。也就是说,向发送调用请求的其他节点返回预设值,这样,其他节点根据预设值,可以确定目标节点已发生故障,进而不再继续发送调用请求,有利于维护系统的稳定。
具体来说,本申请提供的方案首先计算每个预设周期的调用失败率,并获取取值范围在0-1之间的随机数,作为启动熔断机制的熔断阈值,然后,将目标节点的调用失败率和生成的随机数比较,随机数小于失败率时,触发兜底方案,否则,随机数大于或等于失败率时,向下调用。这样,当失败率升高时,随机数生成区间小于失败率的概率也会增高,失败率降低时,随机数生成区间小于失败率的概率也会降低,启动兜底方案的概率也会越低。
由以上可见,本公开的实施例提供的技术方案,根据随机生成的熔断阈值判断是否对目标节点进行熔断,当失败率升高时,随机数生成区间小于失败率的概率也会增高,失败率降低时,随机数生成区间小于失败率的概率也会降低,启动兜底方案的概率也会越低,从而实现目标节点的资源隔离和自我恢复功能,而且不需要调整系统的整体架构,开发成本较低。
图6是根据一示例性实施例示出的一种节点异常熔断装置框图,包括:
获取模块301,用于获取目标节点对应的预设链表;所述预设链表由多个具有逻辑顺序的链表单元组成;
存储模块302,用于按照预设周期,获取针对所述目标节点的调用请求的调用失败率,并将所述调用失败率依次存储至所述链表单元中;
生成模块303,用于随机生成所述预设周期对应的熔断阈值;所述熔断阈值的取值范围在0至1之间;
判断模块304,用于在所述调用失败率小于所述熔断阈值的情况下,触发所述目标节点的熔断机制。
可选地,所述判断模块304,还用于:
在所述调用失败率大于或等于所述熔断阈值的情况下,对针对所述目标节点的调用请求进行响应。
可选地,所述存储模块302,用于:
在所述预设链表中存在未被访问的链表单元的情况下,将未被访问的链表单元中所述逻辑顺序最前的作为目标链表单元,将所述调用失败率存储至所述目标链表单元中;
在所述预设链表中不存在未被访问的链表单元的情况下,将链表单元中访问时间距离当前时间最久的作为目标链表单元,将所述调用失败率存储至所述目标链表单元中。
可选地,所述预设链表为哈希链表。
可选地,所述存储模块302,用于:
按照预设周期,获取针对所述目标节点的调用请求的调用总量及失败量,并将所述调用总量及所述失败量依次存储至所述链表单元中;
将所述失败量与所述调用总量相除,得到针对所述目标节点的调用请求的调用失败率。
可选地,所述判断模块304,用于:
向针对所述目标节点的调用请求返回预设值。
由以上可见,本公开的实施例提供的技术方案,根据随机生成的熔断阈值判断是否对目标节点进行熔断,当失败率升高时,随机数生成区间小于失败率的概率也会增高,失败率降低时,随机数生成区间小于失败率的概率也会降低,启动兜底方案的概率也会越低,从而实现目标节点的资源隔离和自我恢复功能,而且不需要调整系统的整体架构,开发成本较低。
图7是根据一示例性实施例示出的一种用于节点异常熔断的电子设备的框图。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器,所述指令可由电子设备的处理器执行以完成所述方法。可选地,计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供一种计算机程序产品,当其在计算机上运行时,使得计算机实现如下方法:
获取目标节点对应的预设链表;所述预设链表由多个具有逻辑顺序的链表单元组成;
按照预设周期,获取针对所述目标节点的调用请求的调用失败率,并将所述调用失败率依次存储至所述链表单元中;
随机生成所述预设周期对应的熔断阈值;所述熔断阈值的取值范围在0至1之间;
在所述调用失败率小于所述熔断阈值的情况下,触发所述目标节点的熔断机制。
可选地,在所述调用失败率大于或等于所述熔断阈值的情况下,所述方法还包括:
对针对所述目标节点的调用请求进行响应。
可选地,所述将所述调用失败率依次存储至所述链表单元中,包括:
在所述预设链表中存在未被访问的链表单元的情况下,将未被访问的链表单元中所述逻辑顺序最前的作为目标链表单元,将所述调用失败率存储至所述目标链表单元中;
在所述预设链表中不存在未被访问的链表单元的情况下,将链表单元中访问时间距离当前时间最久的作为目标链表单元,将所述调用失败率存储至所述目标链表单元中。
可选地,所述预设链表为哈希链表。
可选地,所述按照预设周期,获取针对所述目标节点的调用请求的调用失败率,并将所述调用失败率依次存储至所述链表单元中,包括:
按照预设周期,获取针对所述目标节点的调用请求的调用总量及失败量,并将所述调用总量及所述失败量依次存储至所述链表单元中;
将所述失败量与所述调用总量相除,得到针对所述目标节点的调用请求的调用失败率。
可选地,所述触发所述目标节点的熔断机制,包括:
向针对所述目标节点的调用请求返回预设值。
由以上可见,本公开的实施例提供的技术方案,根据随机生成的熔断阈值判断是否对目标节点进行熔断,当失败率升高时,随机数生成区间小于失败率的概率也会增高,失败率降低时,随机数生成区间小于失败率的概率也会降低,启动兜底方案的概率也会越低,从而实现目标节点的资源隔离和自我恢复功能,而且不需要调整系统的整体架构,开发成本较低。
图8是根据一示例性实施例示出的一种用于节点异常熔断的装置800的框图。
例如,装置800可以是移动电话,计算机,数字广播电子设备,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图8,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电力组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成所述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件807为装置800的各种组件提供电力。电源组件807可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述装置800和账户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自账户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,所述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,账户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行第一方面和第二方面所述的方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,所述指令可由装置800的处理器820执行以完成所述方法。可选地,例如,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性非临时性计算机可读存储介质计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行所述实施例中任一所述的节点异常熔断方法。
由以上可见,本公开的实施例提供的技术方案,根据随机生成的熔断阈值判断是否对目标节点进行熔断,当失败率升高时,随机数生成区间小于失败率的概率也会增高,失败率降低时,随机数生成区间小于失败率的概率也会降低,启动兜底方案的概率也会越低,从而实现目标节点的资源隔离和自我恢复功能,而且不需要调整系统的整体架构,开发成本较低。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (15)
1.一种节点异常熔断方法,其特征在于,包括:
获取目标节点对应的预设链表;所述预设链表由多个具有逻辑顺序的链表单元组成;
按照预设周期,获取针对所述目标节点的调用请求的调用失败率,并将所述调用失败率依次存储至所述链表单元中;
随机生成所述预设周期对应的熔断阈值;所述熔断阈值的取值范围在0至1之间;
在所述调用失败率小于所述熔断阈值的情况下,触发所述目标节点的熔断机制。
2.根据权利要求1所述的节点异常熔断方法,其特征在于,在所述调用失败率大于或等于所述熔断阈值的情况下,所述方法还包括:
对针对所述目标节点的调用请求进行响应。
3.根据权利要求1或2任一项所述的节点异常熔断方法,其特征在于,所述将所述调用失败率依次存储至所述链表单元中,包括:
在所述预设链表中存在未被访问的链表单元的情况下,将未被访问的链表单元中所述逻辑顺序最前的作为目标链表单元,将所述调用失败率存储至所述目标链表单元中;
在所述预设链表中不存在未被访问的链表单元的情况下,将链表单元中访问时间距离当前时间最久的作为目标链表单元,将所述调用失败率存储至所述目标链表单元中。
4.根据权利要求3所述的节点异常熔断方法,其特征在于,所述预设链表为哈希链表。
5.根据权利要求1或2任一项所述的节点异常熔断方法,其特征在于,所述按照预设周期,获取针对所述目标节点的调用请求的调用失败率,并将所述调用失败率依次存储至所述链表单元中,包括:
按照预设周期,获取针对所述目标节点的调用请求的调用总量及失败量,并将所述调用总量及所述失败量依次存储至所述链表单元中;
将所述失败量与所述调用总量相除,得到针对所述目标节点的调用请求的调用失败率。
6.根据权利要求1或2任一项所述的节点异常熔断方法,其特征在于,所述触发所述目标节点的熔断机制,包括:
向针对所述目标节点的调用请求返回预设值。
7.一种节点异常熔断装置,其特征在于,包括:
获取模块,用于获取目标节点对应的预设链表;所述预设链表由多个具有逻辑顺序的链表单元组成;
存储模块,用于按照预设周期,获取针对所述目标节点的调用请求的调用失败率,并将所述调用失败率依次存储至所述链表单元中;
生成模块,用于随机生成所述预设周期对应的熔断阈值;所述熔断阈值的取值范围在0至1之间;
判断模块,用于在所述调用失败率小于所述熔断阈值的情况下,触发所述目标节点的熔断机制。
8.根据权利要求7所述的节点异常熔断装置,其特征在于,所述判断模块,还用于:
在所述调用失败率大于或等于所述熔断阈值的情况下,对针对所述目标节点的调用请求进行响应。
9.根据权利要求7或8任一项所述的节点异常熔断装置,其特征在于,所述存储模块,用于:
在所述预设链表中存在未被访问的链表单元的情况下,将未被访问的链表单元中所述逻辑顺序最前的作为目标链表单元,将所述调用失败率存储至所述目标链表单元中;
在所述预设链表中不存在未被访问的链表单元的情况下,将链表单元中访问时间距离当前时间最久的作为目标链表单元,将所述调用失败率存储至所述目标链表单元中。
10.根据权利要求9所述的节点异常熔断装置,其特征在于,所述预设链表为哈希链表。
11.根据权利要求7或8任一项所述的节点异常熔断装置,其特征在于,所述存储模块,用于:
按照预设周期,获取针对所述目标节点的调用请求的调用总量及失败量,并将所述调用总量及所述失败量依次存储至所述链表单元中;
将所述失败量与所述调用总量相除,得到针对所述目标节点的调用请求的调用失败率。
12.根据权利要求7或8任一项所述的节点异常熔断装置,其特征在于,所述判断模块,用于:
向针对所述目标节点的调用请求返回预设值。
13.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6中任一项所述的节点异常熔断方法。
14.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由节点异常熔断电子设备的处理器执行时,使得节点异常熔断电子设备能够执行如权利要求1至6中任一项所述的节点异常熔断方法。
15.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6任一项所述的节点异常熔断方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211619707.1A CN116248483A (zh) | 2022-12-15 | 2022-12-15 | 一种节点异常熔断方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211619707.1A CN116248483A (zh) | 2022-12-15 | 2022-12-15 | 一种节点异常熔断方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116248483A true CN116248483A (zh) | 2023-06-09 |
Family
ID=86633935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211619707.1A Pending CN116248483A (zh) | 2022-12-15 | 2022-12-15 | 一种节点异常熔断方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116248483A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117493067A (zh) * | 2023-12-29 | 2024-02-02 | 北京淘友天下技术有限公司 | 基于数据服务保护的熔断控制方法及系统 |
-
2022
- 2022-12-15 CN CN202211619707.1A patent/CN116248483A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117493067A (zh) * | 2023-12-29 | 2024-02-02 | 北京淘友天下技术有限公司 | 基于数据服务保护的熔断控制方法及系统 |
CN117493067B (zh) * | 2023-12-29 | 2024-04-23 | 北京淘友天下技术有限公司 | 基于数据服务保护的熔断控制方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110515709B (zh) | 任务调度系统、方法、装置、电子设备及存储介质 | |
CN109408207B (zh) | 微服务访问控制方法、装置及存储介质 | |
CN110636150B (zh) | 域名解析方法、域名解析装置及存储介质 | |
RU2642843C2 (ru) | Способ и устройство обработки записи контактов | |
CN108989062B (zh) | 更新群成员数据的方法、装置、终端、系统及存储介质 | |
CN112671897A (zh) | 分布式系统的访问方法、装置、存储介质、设备和产品 | |
CN116248483A (zh) | 一种节点异常熔断方法、装置、电子设备及存储介质 | |
CN111246278A (zh) | 视频播放方法、装置、电子设备及存储介质 | |
CN107463419B (zh) | 应用重启方法、装置及计算机可读存储介质 | |
CN109586951B (zh) | 实施故障转移的方法、装置、电子设备及可读存储介质 | |
CN108012258B (zh) | 虚拟sim卡的数据流量管理方法、装置、终端及服务器 | |
CN112883314B (zh) | 一种请求处理方法及装置 | |
CN110750787B (zh) | 一种病毒扫描方法、装置及介质 | |
CN111241134B (zh) | 一种数据处理方法及装置 | |
CN113407316A (zh) | 服务调度方法、装置、电子设备及存储介质 | |
CN107257384B (zh) | 服务状态监控方法及装置 | |
CN109246322B (zh) | 一种信息处理方法和系统 | |
CN112819061A (zh) | 口令信息识别方法、装置、设备及存储介质 | |
CN111984532A (zh) | 一种基于小程序的异常处理方法及装置 | |
CN115361352B (zh) | 消息更新方法、装置、电子设备及存储介质 | |
CN113452765B (zh) | 一种长连接通信方法、系统、设备、存储介质及程序产品 | |
CN112201236B (zh) | 终端唤醒方法、装置及计算机可读存储介质 | |
CN113821244B (zh) | 离线包更新方法、装置、系统、电子设备及存储介质 | |
CN116915830B (zh) | 请求处理方法、装置 | |
CN113191792B (zh) | 任务的处理方法、装置、电子设备、存储介质和程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |