CN114363153B - 熔断器和服务的自适应熔断方法 - Google Patents
熔断器和服务的自适应熔断方法 Download PDFInfo
- Publication number
- CN114363153B CN114363153B CN202011034053.7A CN202011034053A CN114363153B CN 114363153 B CN114363153 B CN 114363153B CN 202011034053 A CN202011034053 A CN 202011034053A CN 114363153 B CN114363153 B CN 114363153B
- Authority
- CN
- China
- Prior art keywords
- service
- state
- downstream
- frequency
- fuse
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000004044 response Effects 0.000 claims abstract description 122
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 40
- 238000004891 communication Methods 0.000 claims abstract description 25
- 230000007704 transition Effects 0.000 claims description 50
- 239000011159 matrix material Substances 0.000 claims description 24
- 238000009825 accumulation Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 230000001186 cumulative effect Effects 0.000 claims description 8
- 230000003044 adaptive effect Effects 0.000 claims description 6
- 230000001174 ascending effect Effects 0.000 claims description 4
- 230000015556 catabolic process Effects 0.000 claims description 3
- 238000006731 degradation reaction Methods 0.000 claims description 3
- 239000000758 substrate Substances 0.000 claims 2
- 230000007246 mechanism Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 6
- 230000001052 transient effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提出一种熔断器和服务的自适应熔断方法,涉及信息技术领域。上游服务的熔断器利用马尔可夫链模型根据下游服务的响应时间预测下游服务的服务状态,根据预测的下游服务的服务状态控制上游服务与下游服务之间的通信,使得熔断器具备自治能力,熔断机制启动更及时,提升了服务系统的稳定性,避免因为超时时限设置不合理而降低系统的性能或可用性。
Description
技术领域
本公开涉及信息技术领域,特别涉及一种熔断器和服务的自适应熔断方法。
背景技术
微服务是当前信息技术的一个趋势,其将服务系统中的功能进行解耦形成多个轻量的微服务(也称子服务),以降低服务系统的复杂性。每个微服务可以有自己独立的编程语言、模式等,且能够独立维护,独立部署,功能复用。各个微服务间通过RPC(RemoteProcedure Call,远程过程调用)、HTTP(Hyper Text Transfer Protocol,超文本传输协议)等接口实现服务间的通讯。一个后台服务依赖多个微服务,当依赖的某个微服务出现故障时,可能出现雪崩效应,导致整个系统不可用。
在一些相关技术中,通过启用微服务熔断机制,解决雪崩效应提升系统可用性。例如,通过设置固定的超时时限和超时次数阈值,在固定超时时限内,服务调用超时次数达到一个阈值,打开断路器,快速返回错误的响应信息或返回缓存信息进行服务降级。
发明人发现,该微服务熔断机制无法设定准确的超时时限,容易导致对下游服务状态的误判,如果超时时限太小,系统的可用性会降低,如果超时时限太大,系统的性能会降低,此外,其重试机制检测容易增加下游服务的负载,同时难以应对下游服务的瞬态故障对系统可用性的影响。
发明内容
在本公开实施例中,熔断器利用马尔可夫链模型根据下游服务的响应时间预测下游服务的服务状态,根据预测的下游服务的服务状态控制上游服务与下游服务之间的通信,使得熔断器具备自治能力,熔断机制启动更及时,提升了服务系统的稳定性,避免因为超时时限设置不合理而降低系统的性能或可用性。此外,重试机制在预测状态是“半稳定态”时才启动,大大降低瞬态故障对系统可用性的影响,同时降低下游服务的负载。
本公开实施例提出一种服务的自适应熔断方法,包括:
上游服务的熔断器利用马尔可夫链模型根据下游服务的响应时间预测下游服务的服务状态;
熔断器根据预测的下游服务的服务状态控制上游服务与下游服务之间的通信。
在一些实施例中,熔断器根据预测的下游服务的服务状态控制上游服务与下游服务之间的通信,包括:
如果预测的下游服务的服务状态处于“稳定态”,熔断器控制熔断开关关闭,允许上游服务与下游服务之间进行服务通信;
或者,如果预测的下游服务的服务状态处于“故障态”,熔断器控制熔断开关打开,不允许上游服务与下游服务之间进行服务通信;
或者,如果预测的下游服务的服务状态处于“半稳定态”,熔断器启动服务重试。
在一些实施例中,熔断器在启动服务重试之后,向下游服务重复发送服务调用请求,如果在预设重试次数内服务调用成功,控制熔断开关关闭,如果在预设重试次数内服务调用失败,控制熔断开关打开。
在一些实施例中,熔断器利用马尔可夫链模型根据下游服务的响应时间预测下游服务的服务状态,包括:
获取下游服务的多个服务调用响应时间;
根据多个服务调用响应时间,确定各个服务状态的频数以及各个过渡状态的频数;
根据各个服务状态的频数以及各个过渡状态的频数,确定状态转移矩阵;
根据状态转移矩阵,预测服务状态。
在一些实施例中,确定各个服务状态的频数以及各个过渡状态的频数包括:
将多个服务调用响应时间升序排列;
根据排列后的多个服务调用响应时间,计算响应时间累积频数;
确定响应时间累积频数的三个四分位数,每个四分位数对应一个服务状态;
根据三个四分位数划分形成的时间范围以及多个服务调用响应时间各自所在的时间范围,确定每个服务调用响应时间对应的服务状态;
根据多个服务调用响应时间以及每个服务调用响应时间对应的服务状态,统计各个服务状态的频数以及各个过渡状态的频数。
在一些实施例中,计算响应时间累积频数包括:
将排列后的多个服务调用响应时间分组;
统计每个分组中的服务调用响应时间的频数;
根据每个分组中的服务调用响应时间的频数,计算各个分组的响应时间累积频数。
在一些实施例中,状态转移矩阵transition_matrix={[p11/p1,p12/p1,p13/p1],[p21/p2,p22/p2,p23/p2],[p31/p3,p32/p3,p33/p3]};
其中,p1,p2,p3分别表示服务状态“稳定态”P1“半稳定态”P2“故障态”P3的频数,pij表示服务状态Pi过渡到服务状态Pj的过渡状态Pij的频数,i,j的范围都是1,2,3。
在一些实施例中,根据状态转移矩阵,预测服务状态包括:状态转移矩阵自乘预设的多次得到预测矩阵,将预测矩阵对角线的三个数值分别作为“稳定态”“半稳定态”“故障态”的预测概率,最大预测概率对应的服务状态作为预测的服务状态。
在一些实施例中,将排列后的多个服务调用响应时间分组包括:
根据多个服务调用响应时间的数量的开方,确定分组的数量;
根据多个服务调用响应时间的最大值和最小值以及分组的数量,确定分组的梯度;
根据分组的数量和梯度,将排列后的多个服务调用响应时间分组。
在一些实施例中,所述服务包括微服务。
本公开一些实施例提出一种熔断器,包括:
马尔可夫链模型,被配置为根据下游服务的响应时间预测下游服务的服务状态;
熔断开关,被配置为根据预测的下游服务的服务状态,利用关闭或打开的方式,控制上游服务与下游服务之间的通信。
在一些实施例中,熔断器还包括:
缓存,被配置为如果预测的下游服务的服务状态处于“故障态”,响应上游服务的服务调用请求并返回服务调用响应;
重试单元,被配置为如果预测的下游服务的服务状态处于“半稳定态”,向下游服务重复发送服务调用请求;
所述熔断开关,被配置为:
如果预测的下游服务的服务状态处于“稳定态”,关闭,允许上游服务与下游服务之间进行服务通信;
或者,如果预测的下游服务的服务状态处于“故障态”,打开,不允许上游服务与下游服务之间进行服务通信,启动所述缓存的降级服务功能;
或者,如果预测的下游服务的服务状态处于“半稳定态”,启动所述重试单元,如果所述重试单元在预设重试次数内服务调用成功,关闭,如果所述重试单元在预设重试次数内服务调用失败,打开。
在一些实施例中,马尔可夫链模型,被配置为按照前述实施例的方法,预测下游服务的服务状态。
本公开一些实施例提出一种非瞬时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一个实施例的服务的自适应熔断方法的步骤。
附图说明
下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍。根据下面参照附图的详细描述,可以更加清楚地理解本公开。
显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开一些实施例的熔断器的示意图。
图2示出本公开一些实施例的服务的自适应熔断方法的示意图。
图3示出本公开一些实施例的利用马尔可夫链模型预测下游服务的服务状态的流程示意图。
图4示出本公开一些实施例的各个服务状态和各个过渡状态以及它们的频数示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。
本公开实施例中的上游服务、下游服务等服务例如包括微服务。
图1示出本公开一些实施例的熔断器的示意图。
如图1所示,该实施例的熔断器100包括:马尔可夫链模型110、熔断开关120,还可以包括缓存130、重试单元140等组件。熔断器100例如可以设置在上游服务处,从而控制上游服务与下游服务之间的通信。
马尔可夫链模型110,被配置为根据下游服务的响应时间预测下游服务的服务状态,例如,“稳定态”“半稳定态”“故障态”等。后面会描述预测的具体方法。
熔断开关120,被配置为根据预测的下游服务的服务状态,利用关闭或打开的方式,控制上游服务与下游服务之间的通信。
例如,如果预测的下游服务的服务状态处于“稳定态”,熔断开关120关闭,允许上游服务与下游服务之间进行服务通信,即,上游服务向下游服务发送服务调用请求,下游服务向上游服务返回服务调用响应;或者,如果预测的下游服务的服务状态处于“故障态”,熔断开关120打开,不允许上游服务与下游服务之间进行服务通信,启动缓存130的降级服务功能,即由缓存130基于缓存内容响应上游服务的服务调用请求并返回服务调用响应;或者,如果预测的下游服务的服务状态处于“半稳定态”,启动重试单元140的服务重试功能,如果重试单元140在预设重试次数内服务调用成功,熔断开关120关闭,如果重试单元140在预设重试次数内服务调用失败,熔断开关120打开。
缓存130,被配置为如果预测的下游服务的服务状态处于“故障态”,启动降级服务功能,基于缓存内容响应上游服务的服务调用请求并返回服务调用响应,实现降级服务。
重试单元140,被配置为如果预测的下游服务的服务状态处于“半稳定态”,启动服务重试功能,向下游服务重复发送服务调用请求,直至在预设重试次数内服务调用成功或达到预设重试次数。
图2示出本公开一些实施例的服务的自适应熔断方法的示意图。
如图2所示,该实施例的服务的自适应熔断方法包括:
在步骤210,上游服务的熔断器利用马尔可夫链模型根据下游服务的响应时间预测下游服务的服务状态。后面会描述预测的具体方法。
在步骤220,熔断器根据预测的下游服务的服务状态控制上游服务与下游服务之间的通信,包括:
如果预测的下游服务的服务状态处于“稳定态”,在步骤221,熔断开关关闭,允许上游服务与下游服务之间进行服务通信,在步骤222,上游服务向下游服务发送服务调用请求,在步骤223,下游服务向上游服务返回服务调用响应。
如果预测的下游服务的服务状态处于“故障态”,在步骤224,熔断开关打开,不允许上游服务与下游服务之间进行服务通信,在步骤225,缓存组件基于缓存的内容响应上游服务的服务调用请求并向上游服务返回服务调用响应,实现降级服务。
在步骤226,如果预测的下游服务的服务状态处于“半稳定态”,启动服务重试,如果在预设重试次数内服务调用成功,执行步骤221的熔断开关关闭,如果在预设重试次数内服务调用失败,执行步骤224的熔断开关打开。
熔断器利用马尔可夫链模型根据下游服务的响应时间预测下游服务的服务状态,根据预测的下游服务的服务状态控制上游服务与下游服务之间的通信,使得熔断器具备自治能力,熔断机制启动更及时,提升了服务系统的稳定性,避免因为超时时限设置不合理而降低系统的性能或可用性。此外,重试机制在预测状态是“半稳定态”时才启动,大大降低瞬态故障对系统可用性的影响,同时降低下游服务的负载。
下面结合图3描述熔断器利用马尔可夫链模型根据下游服务的响应时间预测下游服务的服务状态的方法。
图3示出本公开一些实施例的利用马尔可夫链模型预测下游服务的服务状态的流程示意图。
如图3所示,该实施例的利用马尔可夫链模型预测下游服务的服务状态的方法包括:步骤310-340。
在步骤310,获取下游服务的多个服务调用响应时间。
例如,获取下游服务的数十、数百等多个服务调用响应时间。每个服务调用响应时间称为一个样本。
在步骤320,根据多个服务调用响应时间,确定各个服务状态的频数以及各个过渡状态的频数,例如包括步骤321-325。
在步骤321,将多个服务调用响应时间升序排列。
也即,根据服务调用响应时间的长短,将响应时间较短的服务调用响应时间排在前面,将响应时间较长的服务调用响应时间排在后面。
在步骤322,根据排列后的多个服务调用响应时间,计算响应时间累积频数,例如包括步骤3221-3223。
在步骤3221,根据分组的数量和梯度,将排列后的多个服务调用响应时间分组。
分组的数量和梯度可以设置。例如,根据多个服务调用响应时间的数量的开方,确定分组的数量;根据多个服务调用响应时间的最大值和最小值以及分组的数量,确定分组的梯度。
假设分组集合为bin=[bin0,bin1,……,binn],bin0=min,bin1=min+β,……,binn=min+nβ。其中,bini表示其中一个分组,分组的数量n=ceil(sqrt(count)),count表示多个服务调用响应时间的数量,也即样本的总数,sqrt(count)为count的开方,ceil(sqrt(count))为不小于sqrt(count)的下一个整数,分组的梯度β为(max-min)/sqrt(count),max为样本中最大值(多个服务调用响应时间的最大值),min为样本中最小值(多个服务调用响应时间的最小值)。
在步骤3222,统计每个分组中的服务调用响应时间的频数。
也即,统计在第一个分组的时间范围内的服务调用响应时间样本的数量,统计在第二个分组的时间范围内的服务调用响应时间样本的数量,依次类推,如果有n个分组的话,统计在第n个分组的时间范围内的服务调用响应时间样本的数量。
在步骤3223,根据每个分组中的服务调用响应时间的频数,计算各个分组的响应时间累积频数。
假设n个分组的响应时间累积频数为cum_freq=[cum_freq0,cum_freq1,……,cum_freqn],(0<=n<ceil(sqrt(count))),则第i个分组的响应时间累积频数等于前i-1个分组的响应时间累积频数与第i个分组的服务调用响应时间的频数的和值,表示为cum_freqi=cum_freq(i-1)+freqi,其中,第1个分组的响应时间累积频数等于第1个分组的服务调用响应时间的频数,依次表示为cum_freq0=freq0,cum_freq1=cum_freq0+freq1,……,cum_freqn=cum_freq(n-1)+freqn。
上述方法描述了将服务调用响应时间分组并计算各个分组的响应时间累积频数。本领域技术人员可以理解,作为一种特例,也可以不分组(或者说,将每个服务调用响应时间作为一个分组),分别计算每个服务调用响应时间的累积频数,计算方法相同,这里不再赘述。根据处理能力和处理时间的要求,可以灵活设置分组的大小。
在步骤323,确定响应时间累积频数的三个四分位数,每个四分位数对应一个服务状态。
将各个响应时间累积频数分成四等份,处于三个分割点位置的数据就是三个四分位数。
第一四分位数对应稳定状态,第二四分位数对应半稳定状态,第三四分位数对应故障状态。
在步骤324,根据三个四分位数划分形成的时间范围以及多个服务调用响应时间各自所在的时间范围,确定每个服务调用响应时间对应的服务状态。
三个四分位数划分形成的时间范围按照由小到大分为第一时间范围、第二时间范围、第三时间范围、第四时间范围,如果某个服务调用响应时间落在第一时间范围,则该服务调用响应时间对应稳定状态;如果某个服务调用响应时间落在第二时间范围,则该服务调用响应时间对应半稳定状态;如果某个服务调用响应时间落在第三时间范围,则该服务调用响应时间对应故障状态。
在步骤325,根据多个服务调用响应时间以及每个服务调用响应时间对应的服务状态,统计各个服务状态的频数以及各个过渡状态的频数。
根据前述,已经获知每个服务调用响应时间对应的服务状态,因此,可以统计每个服务状态的服务调用响应时间样本的数量作为该服务状态的频数,例如,假设服务调用响应时间样本的总数是100,其中,稳定状态的服务调用响应时间样本的数量是60,半稳定状态的服务调用响应时间样本的数量是30,故障状态的服务调用响应时间样本的数量是10,则稳定状态的频数为60,半稳定状态的频数为30,故障状态的频数为10。
服务状态Pi过渡到服务状态Pj的过渡状态Pij例如包括:“稳定态”P1过渡到“稳定态”P1的过渡状态P11,“稳定态”P1过渡到“半稳定态”P2的过渡状态P12,“稳定态”P1过渡到“故障态”P3的过渡状态P13,“半稳定态”P2过渡到“稳定态”P1的过渡状态P21,“半稳定态”P2过渡到“半稳定态”P2的过渡状态P22,“半稳定态”P2过渡到“故障态”P3的过渡状态P23,“故障态”P3过渡到“稳定态”P1的过渡状态P31,“故障态”P3过渡到“半稳定态”P2的过渡状态P32,“故障态”P3过渡到“故障态”P3的过渡状态P33。
如果前一时刻的服务调用响应时间对应“稳定态”P1,后一时刻的服务调用响应时间对应“故障态”P3,则“稳定态”P1到“故障态”P3的过渡状态P13的频数加1。其他过渡状态的频数统计方法与此类似,这里不再赘述。
在步骤330,根据各个服务状态的频数以及各个过渡状态的频数,确定状态转移矩阵。
状态转移矩阵transition_matrix={[p11/p1,p12/p1,p13/p1],[p21/p2,p22/p2,p23/p2],[p31/p3,p32/p3,p33/p3]};
其中,p1,p2,p3分别表示服务状态“稳定态”P1“半稳定态”P2“故障态”P3的频数,pij表示服务状态Pi过渡到服务状态Pj的过渡状态Pij的频数,i,j的范围都是1,2,3。
各个服务状态和各个过渡状态以及它们的频数可以参考图4所示。
在步骤340,根据状态转移矩阵,预测服务状态。
状态转移矩阵自乘预设的多次(例如9次,次数不做限定)得到预测矩阵,稳定后的预测矩阵除了对角线的三个元素之外,其他元素为0或基本为0,将预测矩阵对角线的三个数值分别作为“稳定态”“半稳定态”“故障态”的预测概率,其中的最大预测概率对应的服务状态作为预测的服务状态。
从而,利用马尔可夫链模型根据下游服务的响应时间准确地预测下游服务的服务状态。
本公开实施例还提出一种非瞬时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现服务的自适应熔断方法的步骤。
本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机程序代码的非瞬时性计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (12)
1.一种服务的自适应熔断方法,其特征在于,包括:
上游服务的熔断器利用马尔可夫链模型根据下游服务的响应时间预测下游服务的服务状态,包括:获取下游服务的多个服务调用响应时间;根据多个服务调用响应时间,确定各个服务状态的频数以及各个过渡状态的频数;根据各个服务状态的频数以及各个过渡状态的频数,确定状态转移矩阵;根据状态转移矩阵,预测服务状态;其中,确定各个服务状态的频数以及各个过渡状态的频数包括:将多个服务调用响应时间升序排列;根据排列后的多个服务调用响应时间,计算响应时间累积频数;确定响应时间累积频数的三个四分位数,每个四分位数对应一个服务状态;根据三个四分位数划分形成的时间范围以及多个服务调用响应时间各自所在的时间范围,确定每个服务调用响应时间对应的服务状态;根据多个服务调用响应时间以及每个服务调用响应时间对应的服务状态,统计各个服务状态的频数以及各个过渡状态的频数;过渡状态是指从一种服务状态过渡到另一种服务状态;
熔断器根据预测的下游服务的服务状态控制上游服务与下游服务之间的通信。
2.根据权利要求1所述的方法,其特征在于,所述熔断器包括熔断开关;
熔断器根据预测的下游服务的服务状态控制上游服务与下游服务之间的通信,包括:
如果预测的下游服务的服务状态处于“稳定态”,熔断器控制熔断开关关闭,允许上游服务与下游服务之间进行服务通信;
或者,如果预测的下游服务的服务状态处于“故障态”,熔断器控制熔断开关打开,不允许上游服务与下游服务之间进行服务通信;
或者,如果预测的下游服务的服务状态处于“半稳定态”,熔断器启动服务重试。
3.根据权利要求2所述的方法,其特征在于,
熔断器在启动服务重试之后,向下游服务重复发送服务调用请求,如果在预设重试次数内服务调用成功,控制熔断开关关闭,如果在预设重试次数内服务调用失败,控制熔断开关打开。
4.根据权利要求1所述的方法,其特征在于,计算响应时间累积频数包括:
将排列后的多个服务调用响应时间分组;
统计每个分组中的服务调用响应时间的频数;
根据每个分组中的服务调用响应时间的频数,计算各个分组的响应时间累积频数。
5.根据权利要求1所述的方法,其特征在于,
状态转移矩阵transition_matrix={[p11/p1,p12/p1,p13/p1],[p21/p2,p22/p2,p23/p2],[p31/p3,p32/p3,p33/p3]};
其中,p1,p2,p3分别表示服务状态“稳定态”P1“半稳定态”P2“故障态”P3的频数,pij表示服务状态Pi过渡到服务状态Pj的过渡状态Pij的频数,i,j的范围都是1,2,3。
6.根据权利要求5所述的方法,其特征在于,根据状态转移矩阵,预测服务状态包括:
状态转移矩阵自乘预设的多次得到预测矩阵,将预测矩阵对角线的三个数值分别作为“稳定态”“半稳定态”“故障态”的预测概率,最大预测概率对应的服务状态作为预测的服务状态。
7.根据权利要求4所述的方法,其特征在于,将排列后的多个服务调用响应时间分组包括:
根据多个服务调用响应时间的数量的开方,确定分组的数量;
根据多个服务调用响应时间的最大值和最小值以及分组的数量,确定分组的梯度;
根据分组的数量和梯度,将排列后的多个服务调用响应时间分组。
8.根据权利要求1-7任一项所述的方法,其特征在于,
所述服务包括微服务。
9.一种熔断器,包括:
马尔可夫链模型,被配置为根据下游服务的响应时间预测下游服务的服务状态,包括:获取下游服务的多个服务调用响应时间;根据多个服务调用响应时间,确定各个服务状态的频数以及各个过渡状态的频数;根据各个服务状态的频数以及各个过渡状态的频数,确定状态转移矩阵;根据状态转移矩阵,预测服务状态;其中,确定各个服务状态的频数以及各个过渡状态的频数包括:将多个服务调用响应时间升序排列;根据排列后的多个服务调用响应时间,计算响应时间累积频数;确定响应时间累积频数的三个四分位数,每个四分位数对应一个服务状态;根据三个四分位数划分形成的时间范围以及多个服务调用响应时间各自所在的时间范围,确定每个服务调用响应时间对应的服务状态;根据多个服务调用响应时间以及每个服务调用响应时间对应的服务状态,统计各个服务状态的频数以及各个过渡状态的频数;过渡状态是指从一种服务状态过渡到另一种服务状态;
熔断开关,被配置为根据预测的下游服务的服务状态,利用关闭或打开的方式,控制上游服务与下游服务之间的通信。
10.根据权利要求9所述的熔断器,其特征在于,还包括:
缓存,被配置为如果预测的下游服务的服务状态处于“故障态”,响应上游服务的服务调用请求并返回服务调用响应;
重试单元,被配置为如果预测的下游服务的服务状态处于“半稳定态”,向下游服务重复发送服务调用请求;
所述熔断开关,被配置为:
如果预测的下游服务的服务状态处于“稳定态”,关闭,允许上游服务与下游服务之间进行服务通信;
或者,如果预测的下游服务的服务状态处于“故障态”,打开,不允许上游服务与下游服务之间进行服务通信,启动所述缓存的降级服务功能;
或者,如果预测的下游服务的服务状态处于“半稳定态”,启动所述重试单元,如果所述重试单元在预设重试次数内服务调用成功,关闭,如果所述重试单元在预设重试次数内服务调用失败,打开。
11.根据权利要求9所述的熔断器,其特征在于,
马尔可夫链模型,被配置为按照权利要求4-7任一项所述的方法,预测下游服务的服务状态。
12.一种非瞬时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1-8中任一项所述的服务的自适应熔断方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011034053.7A CN114363153B (zh) | 2020-09-27 | 2020-09-27 | 熔断器和服务的自适应熔断方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011034053.7A CN114363153B (zh) | 2020-09-27 | 2020-09-27 | 熔断器和服务的自适应熔断方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114363153A CN114363153A (zh) | 2022-04-15 |
CN114363153B true CN114363153B (zh) | 2024-01-26 |
Family
ID=81090297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011034053.7A Active CN114363153B (zh) | 2020-09-27 | 2020-09-27 | 熔断器和服务的自适应熔断方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114363153B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114675957B (zh) * | 2022-05-26 | 2022-09-09 | 广州市玄武无线科技股份有限公司 | 插件熔断方法、装置、终端设备及计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108319501A (zh) * | 2017-12-26 | 2018-07-24 | 中山大学 | 一种基于微服务网关的弹性资源供给方法及系统 |
CN108712309A (zh) * | 2018-06-11 | 2018-10-26 | 郑州云海信息技术有限公司 | 一种微服务架构下的微服务节点防护方法和系统 |
CN109976935A (zh) * | 2019-03-14 | 2019-07-05 | 北京三快在线科技有限公司 | 微服务架构、微服务节点及其熔断恢复方法、装置 |
CN110825579A (zh) * | 2019-09-18 | 2020-02-21 | 平安科技(深圳)有限公司 | 服务器性能监控方法、装置、计算机设备及存储介质 |
CN110995472A (zh) * | 2019-11-15 | 2020-04-10 | 苏州浪潮智能科技有限公司 | 一种微服务业务熔断方法和系统 |
CN111078453A (zh) * | 2019-12-17 | 2020-04-28 | 深圳前海环融联易信息科技服务有限公司 | 微服务自动熔断和恢复方法、装置、计算机设备及存储介质 |
CN111130939A (zh) * | 2019-12-26 | 2020-05-08 | 深圳前海环融联易信息科技服务有限公司 | 一种流量控制方法、装置、计算机设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8498776B2 (en) * | 2009-11-17 | 2013-07-30 | GM Global Technology Operations LLC | Fault diagnosis and prognosis using diagnostic trouble code markov chains |
-
2020
- 2020-09-27 CN CN202011034053.7A patent/CN114363153B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108319501A (zh) * | 2017-12-26 | 2018-07-24 | 中山大学 | 一种基于微服务网关的弹性资源供给方法及系统 |
CN108712309A (zh) * | 2018-06-11 | 2018-10-26 | 郑州云海信息技术有限公司 | 一种微服务架构下的微服务节点防护方法和系统 |
CN109976935A (zh) * | 2019-03-14 | 2019-07-05 | 北京三快在线科技有限公司 | 微服务架构、微服务节点及其熔断恢复方法、装置 |
CN110825579A (zh) * | 2019-09-18 | 2020-02-21 | 平安科技(深圳)有限公司 | 服务器性能监控方法、装置、计算机设备及存储介质 |
CN110995472A (zh) * | 2019-11-15 | 2020-04-10 | 苏州浪潮智能科技有限公司 | 一种微服务业务熔断方法和系统 |
CN111078453A (zh) * | 2019-12-17 | 2020-04-28 | 深圳前海环融联易信息科技服务有限公司 | 微服务自动熔断和恢复方法、装置、计算机设备及存储介质 |
CN111130939A (zh) * | 2019-12-26 | 2020-05-08 | 深圳前海环融联易信息科技服务有限公司 | 一种流量控制方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114363153A (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8275885B2 (en) | Method, apparatus and system for processing a series of service messages | |
CN110024340B (zh) | 经由使用预测在可见性网络中进行近似均匀负载平衡 | |
CN101084693B (zh) | 用于通信系统中策略实施的方法和系统 | |
EP3907617B1 (en) | Container management based on application performance indicators | |
CN109308252A (zh) | 一种故障定位处理方法及装置 | |
CN109450691B (zh) | 服务网关监控方法、设备及计算机可读存储介质 | |
CN114363153B (zh) | 熔断器和服务的自适应熔断方法 | |
EP2222099B1 (en) | A method, device and system of disaster recovery and handover control | |
CN106330588B (zh) | 一种bfd检测方法与装置 | |
US20200084142A1 (en) | Predictive routing in multi-network scenarios | |
CN110598871A (zh) | 一种微服务架构下的业务流柔性控制的方法及系统 | |
US20120233245A1 (en) | Voip communication system and method for registering client devices with same | |
CN116250223B (zh) | 使用两层强化学习模型的边缘集群的过载保护 | |
CN104272789A (zh) | 移动通信系统、呼叫处理节点以及通信控制方法 | |
CN117857643A (zh) | 一种视频调阅最短路径选择方法、系统、终端及介质 | |
CN103621014B (zh) | 自治的自干扰网络元件和方法 | |
CN107092532B (zh) | 一种远程调用方法及远程调用装置 | |
CN107153570B (zh) | 一种虚拟机的数量控制方法及装置 | |
CN115065588A (zh) | 一种基于后端错误码的api熔断降级实现方法及系统 | |
CN109039732B (zh) | 消息处理系统及消息处理方法 | |
CN110636013B (zh) | 一种消息队列的动态调度方法及装置 | |
CN101964922B (zh) | 异常情况捕捉方法及装置 | |
CN113852513B (zh) | 网络容量预测方法及装置 | |
US20230195070A1 (en) | Control system and control method | |
WO2023227225A1 (en) | Alarm management |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |