CN109976935A - 微服务架构、微服务节点及其熔断恢复方法、装置 - Google Patents
微服务架构、微服务节点及其熔断恢复方法、装置 Download PDFInfo
- Publication number
- CN109976935A CN109976935A CN201910193337.1A CN201910193337A CN109976935A CN 109976935 A CN109976935 A CN 109976935A CN 201910193337 A CN201910193337 A CN 201910193337A CN 109976935 A CN109976935 A CN 109976935A
- Authority
- CN
- China
- Prior art keywords
- micro services
- services node
- node
- health
- current
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1489—Generic software techniques for error detection or fault masking through recovery blocks
Abstract
本发明公开了一种微服务架构、微服务节点及其熔断恢复方法、装置,熔断恢复方法包括:在对第二微服务节点熔断预设时间段后的预设时间点,通知第一微服务节点转发部分业务请求到第二微服务节点;根据获取的第二微服务节点的健康指示信息,得到第二微服务节点当前的健康度,并通知第一微服务节点转发第一个数个业务请求到第二微服务节点;其中,健康指示信息是第二微服务节点在当前统计时间窗内的健康指示信息,第一个数是与第二微服务节点当前的健康度相匹配的个数。解决现有的熔断恢复方案导致微服务节点的利用率不高、容易再次触发熔断的问题,提高了微服务节点和微服务架构的稳定性、可靠性。
Description
技术领域
本发明涉及云计算微服务技术领域,具体涉及一种微服务架构、微服务节点及其熔断恢复方法、装置。
背景技术
在云计算时代,微服务架构是部署应用和服务的新技术,微服务架构通常采用多层结构,并逐层调用微服务节点程序提供服务。比如,微服务节点1→调用微服务节点2,微服务节点2→调用微服务节点3。在这种多层服务调用依赖环境下,如果最底层的服务提供者(比如微服务节点3)不可用,则会导致服务逐级不可用,用户请求积压从而引发整个服务链条的雪崩效应。熔断是预防微服务雪崩问题的重要的措施,通过熔断机制,在微服务异常时启动熔断,熔断调用特定微服务的请求,即不再将请求发送到下游服务以防御微服务雪崩效应。
熔断之后,需要进行熔断恢复,一种可行方式是定期(例如每1分钟)发送探活信号到下游服务节点(比如微服务节点3)以确定下游服务节点是否可用。由于探活信号是定期发送的,所以在两次探活的时间空窗内,即便下游服务节点部分可用或者完全可用,也依然无法恢复这样就导致下游服务节点的利用率不高,而且在通过探活信号确定下游服务恢复后,上游服务节点会将所有流量转发到下游服务节点,导致该微服务节点反而收到更多请求,进而再次触发熔断。
由此可知,现有的熔断恢复方案存在使下游服务节点的利用率不高,容易再次触发熔断的技术问题。
发明内容
有鉴于此,本申请提供了一种微服务架构、微服务节点及其熔断恢复方法、装置,以解决现有的熔断恢复方案导致微服务节点的利用率不高、容易再次触发熔断的问题。
根据本申请的第一个方面,提供了一种熔断恢复方法,应用于微服务架构中的微服务节点,所述微服务架构包括多个所述微服务节点,熔断恢复方法包括:
在对第二微服务节点熔断预设时间段后的预设时间点,通知第一微服务节点转发部分业务请求到所述第二微服务节点,其中,所述第二微服务节点是指被所述第一微服务节点调用的微服务节点;
根据获取的所述第二微服务节点的健康指示信息,得到所述第二微服务节点当前的健康度,并通知所述第一微服务节点转发第一个数个业务请求到所述第二微服务节点;其中,所述健康指示信息是所述第二微服务节点在当前统计时间窗内的健康指示信息,所述第一个数是与所述第二微服务节点当前的健康度相匹配的个数。
根据本申请的第二个方面,提供了一种熔断恢复装置,应用于微服务架构中的微服务节点,所述微服务架构包括多个所述微服务节点,熔断恢复装置包括:
探活单元,用于在对第二微服务节点熔断预设时间段后的预设时间点,通知第一微服务节点转发部分业务请求到所述第二微服务节点,其中,所述第二微服务节点是指被所述第一微服务节点调用的微服务节点;
恢复单元,用于根据获取的所述第二微服务节点的健康指示信息,得到所述第二微服务节点当前的健康度,并通知所述第一微服务节点转发第一个数个业务请求到所述第二微服务节点;其中,所述健康指示信息是所述第二微服务节点在当前统计时间窗内的健康指示信息,所述第一个数是与所述第二微服务节点当前的健康度相匹配的个数。
根据本申请的第三个方面,提供了一种微服务节点,包括:处理器和存储器,
所述存储器,存储有可在所述处理器上运行的计算机程序;
所述处理器,用于在执行所述存储器中的计算机程序时实现本申请第一个方面所述的方法。
根据本申请的第四个方面,提供了一种微服务架构,包括:多个如本申请第三个方面所述的微服务节点。
根据本申请的第五个方面,提供了一种非瞬时性计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现第一个方面所述的方法。
本发明实施例,通过在对下游微服务节点熔断预设时间段后的预设时间点,转发部分业务请求到该下游微服务节点,开始探测下游服务即该微服务节点的可用性,通过探测,充分利用下游服务。以及根据该微服务节点的健康指示信息,得到该微服务节点当前的健康度,转发第一个数个业务请求到该微服务节点,由于第一个数与该微服务节点当前的健康度相匹配,从而实现阶梯式、可配置的熔断恢复,每个阶段转发与该阶段微服务节点健康度相适配数量的业务请求,防止过多流量冲击下游服务,避免了微服务节点由于收到过多流量再次触发熔断,提高了微服务节点和微服务架构的稳定性、可靠性。
附图说明
图1是本发明一个实施例的一种熔断恢复方法的流程图;
图2是本发明一个实施例的统计时间窗的示意图;
图3是本发明一个实施例预设健康度阈值范围的示意图;
图4是本发明一个实施例的一种熔断恢复装置的框图;
图5是本发明一个实施例的微服务节点的示意图;
图6是本发明一个实施例的非瞬时性计算机可读存储介质的示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的技术构思在于,提出了一种配置化的、异步阶梯式熔断恢复方案,在熔断预设时间段后,上游节点转发少量业务请求到下游服务节点进行可用性探测,并根据下游服务的响应来确定是否增加/减少转发的服务量,以此最大限度降低对业务的影响,并保证微服务节点和微服务架构的稳定性、可靠性。
图1是本发明一个实施例的一种熔断恢复方法的流程图,本实施例的熔断恢复方法应用于微服务架构中的微服务节点,所述微服务架构包括多个所述微服务节点,参见图1,熔断恢复方法包括:
步骤S110,在对第二微服务节点熔断预设时间段后的预设时间点,通知第一微服务节点转发部分业务请求到所述第二微服务节点,其中,所述第二微服务节点是指被所述第一微服务节点调用的微服务节点;
步骤S120,根据获取的所述第二微服务节点的健康指示信息,得到所述第二微服务节点当前的健康度,并通知所述第一微服务节点转发第一个数个业务请求到所述第二微服务节点;其中,所述健康指示信息是所述第二微服务节点在当前统计时间窗内的健康指示信息,所述第一个数是与所述第二微服务节点当前的健康度相匹配的个数。
由图1所示可知,本实施例的熔断恢复方法,在对第二微服务节点熔断预设时间段后的预设时间点,通知第一微服务节点转发部分业务请求到第二微服务节点,并根据第二微服务节点当前的健康度通知第一微服务节点转发第一个数(第一个数是与第二微服务节点当前的健康度相匹配的个数)个业务请求到第二微服务节点。从而,一方面,解决了周期性发送探活信号进行探活导致的未及时发现微服务节点已经恢复并充分利用微服务节点的问题。另一方面,通过转发与微服务节点健康度相适配数量的业务请求,避免了大量业务请求冲击刚刚恢复的微服务节点进而再次触发熔断,保证了微服务节点的稳定性,可靠性。
需要说明的是,本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。本发明实施例的应用场景为微服务熔断后的恢复,为便于理解,这里先对熔断进行简要说明,一般地,微服务架构中设计有监测机制,对微服务节点进行监测,比如监测第二微服务节点,获取第二微服务节点的状态信息,状态信息包括最近调用失败次数、请求处理时长或最近调用失败比例。预先设置熔断触发条件比如,熔断触发条件为最近调用失败次数大于或等于预设失败次数阈值,或,熔断触发条件为请求处理时长大于或等于预设时长,或熔断触发条件为最近调用失败比例大于或等于预设比值,这里的最近调用失败比例是最近调用失败次数在最近所有调用次数中的占比,一旦状态信息符合熔断触发条件则触发熔断,熔断之后需要及时探测下游节点的可用性,以充分利用下游节点。
下面结合一个应用场景对本实施例的熔断恢复方法的实现步骤进行说明。
本发明实施例的熔断恢复方法应用于微服务架构中微服务节点,由于微服务节点之间存在链式调用情况,一旦底层或下游服务节点不可用,将影响上游服务,进而引发雪崩效应。对此,本实施例在微服务节点中设置熔断器,熔断器可以使用状态机来实现,内部模拟以下三种状态:
闭合状态:该状态下熔断器对用户请求直接放行,即相当于熔断器不起作用。此状态下设置有错误计数器,错误计数器用于维护最近调用失败的次数,如果某次调用失败,则错误计数器的失败次数加1。如果最近失败次数超过了在给定时间内允许失败的阈值,则切换到断开状态。
断开状态(即熔断状态):在该状态下,熔断器对用户请求立即返回错误响应,相当于熔断调用下游微服务节点的请求。在断开状态下,熔断器开启一个计时器,当该计时器超时,则从断开状态切换到半断开状态。超时时间的设定给了系统一次机会来修正导致调用失败的错误。
半断开状态:半断开状态是断开状态下计时器超时后熔断器转入的一个状态,在该状态下熔断器允许一定数量的请求去调用下游服务节点。根据调用结果做出相应的响应,如果这些请求对下游服务的调用成功,那么可以认为下游微服务节点上之前导致调用失败的错误已经修正,此时熔断器切换到闭合状态(并且将错误计数器重置);如果这一定数量的请求有调用失败的情况或调用失败的比例达到阈值,则认为下游微服务节点上导致之前调用失败的问题仍然存在,熔断器切换回到断开状态,然后重置计时器给系统一定的时间来修正错误。
半断开状态能够有效防止正在恢复中的服务被突然而来的大量请求再次拖垮。基于此,本实施例中对下游微服务节点,比如第二微服务节点进行监控,如果第二微服务节点触发熔断,即进入熔断器的断开状态。则在对第二微服务节点熔断预设时间段后的预设时间点,通知第一微服务节点转发部分业务请求到所述第二微服务节点。
这里当对第二微服务节点熔断一段时间后,比如5秒(实际应用中,熔断时间应当根据业务场景、下游微服务节点的历史恢复时间进行设置,比如,历史数据表明第二微服务节点恢复需要5秒,则可以将熔断时间设置为5秒,历史数据表明第二微服务节点恢复需要10秒,则可以将熔断时间设置为10秒)之后,第一微服务节点开始探测下游节点即第二微服务节点的可用性,具体的探测方式是通过下发业务请求而非探活信号的方式,即,转发部分业务请求到第二微服务节点,获取第二微服务节点的响应。
获取第二微服务节点的响应比如,获取第二微服务节点的健康指示信息,根据获取的所述第二微服务节点的健康指示信息,得到所述第二微服务节点当前的健康度。而后通知所述第一微服务节点转发第一个数个业务请求到所述第二微服务节点;其中,所述健康指示信息是所述第二微服务节点在当前统计时间窗内的健康指示信息,所述第一个数是与所述第二微服务节点当前的健康度相匹配的个数。如此,避免了在两次探活的时间空窗内,即便下游服务部分可用或者完全可用,也依然无法恢复导致下游服务未得到充分利用的问题。并且通过下发少量的、与第二微服务节点健康度适配数量的业务请求,既能最大限度降低对业务的影响又不至于冲击下游服务导致下游服务再次触发熔断。
这里的第二微服务节点是指被第一微服务节点调用的微服务节点,第二微服务节点可以理解为下游节点,第一微服务节点即为上游节点,需要说明的是这里的上游和下游节点都是相对的,比如某个节点A在一次调用过程中是节点B的下游节点,而在另一个调用过程中,可能是节点B的上游节点,调用和被调用关系与具体的业务请求有关。
本实施例中,根据获取的所述第二微服务节点的健康指示信息,得到所述第二微服务节点当前的健康度包括:获取所述第二微服务节点在当前统计时间窗内的健康指示信息;所述健康指示信息包括成功调用次数、失败调用次数和熔断次数,所述当前统计时间窗包括当前时间点之前的一个或多个记录时间窗,所述记录时间窗为记录所述第二微服务节点的健康指示信息的最小时间单位;根据所述成功调用次数、失败调用次数和熔断次数,计算得到所述第二微服务节点当前的健康度;所述健康度指示成功调用次数在总次数中的占比,所述总次数由所述成功调用次数、失败调用次数和熔断次数共同确定。
参见图2,图2示意了一个第二微服务节点对应的一个统计时间窗(比如当前统计时间窗),可以看出,该统计时间窗包括当前时间点之前的多个记录时间窗,即,从第2个到第N个记录时间窗,记录时间窗为记录第二微服务节点的健康指示信息的最小时间单位,每个记录时间窗内对应记录有S,F,B,其中,S:成功调用次数;F:失败调用次数;B:熔断次数。
需要说明的是,本实施例中可以根据不同的下游服务为其配置不同的时间长度。同样的,用来做统计的时间窗口也可以根据不同的下游服务来配置时间长短,对此不做限制,比如两个第二微服务节点的重要性程度、响应频率不同则为这两个第二微服务节点分别设置记录时间窗、统计时间窗。
本实施例中通过获取的当前统计时间窗内的健康指示信息,计算得到第二微服务节点当前的健康度;健康度,即成功率=S/(S+F+B),健康度指示成功调用次数在总次数中的占比,总次数由成功调用次数S、失败调用次数F和熔断次数B共同确定。
在计算出第二微服务节点当前的健康度之后,通知所述第一微服务节点转发第一个数个业务请求到所述第二微服务,包括:将所述第二微服务节点当前的健康度与预设健康度阈值范围进行比较,根据比较结果,确定与所述第二微服务节点当前的健康度相匹配的所述第一个数,通知所述第一微服务节点转发所述第一个数个业务请求到所述第二微服务节点。也就是说,根据第二微服务节点当前的健康度确定所处恢复阶段,然后下发与所处恢复阶段相适配数量的业务请求给第二微服务节点,从而实现阶梯式恢复,既充分利用下游节点又不至于对下游服务造成冲击。
这里的,根据比较结果确定与所述第二微服务节点当前的健康度相匹配的所述第一个数包括:如果所述第二微服务节点当前的健康度超过所述预设健康度阈值范围的上限值,则在上一个统计时间窗内转发的业务请求数的基础上增加预设个数得到所述第一个数;如果所述第二微服务节点当前的健康度低于所述预设健康度阈值范围的下限值,则在上一个统计时间窗内转发的业务请求数的基础上减少预设个数得到所述第一个数;如果所述第二微服务节点当前的健康度在所述预设健康度阈值范围内,则在上一个统计时间窗内转发的业务请求数的基础上保持不变,得到所述第一个数。
参见图3,本实施例中通过恢复比例来指示第二微服务节点所处恢复阶段以及健康度。比如,在熔断后熔断器处于半断开状态下,通过转发少量请求到第二微服务节点,根据第二服务节点的响应(比如根据前述成功调用次数S、失败调用次数F和熔断次数B)确定出第二服务节点当前的恢复比例,经过比较,如果恢复比例小于预设健康度阈值范围的下限值,则在上一个统计时间窗内转发的业务请求数(比如10个)的基础上减少预设个数(比如3个)得到第一个数(10-3=7)。
如图3所示,第二微服务节点的恢复情况不同,相应的恢复比例不同,恢复比例比如20%、50%、90%。本实施例中在每获取到一个统计周期的健康指示信息之后计算健康度,将当前的健康度和预设健康度阈值范围比较,确定第一个数,如果所述第二微服务节点当前的健康度(比如95%)超过所述预设健康度阈值范围的上限值(如图3所示90%),则在上一个统计时间窗内转发的业务请求数(200)的基础上增加预设个数(60)得到所述第一个数(260);如果所述第二微服务节点当前的健康度(比如10%)低于所述预设健康度阈值范围的下限值(如图3所示30%),则在上一个统计时间窗内转发的业务请求数的基础上减少预设个数得到所述第一个数;如果所述第二微服务节点当前的健康度(比如60%)在所述预设健康度阈值范围(如图3所示30%-90%)内,则在上一个统计时间窗内转发的业务请求数(比如150)的基础上保持不变,得到所述第一个数(150)。
如此,在熔断后的一个预设时间点,转发部分请求到下游服务;如果下游服务的健康度超过上限阈值时,则增加转发的请求量;如果下游服务的健康度低于下限阈值时,则降低转发的请求量;如果在上限阈值与下限阈值之间,则维持当前的请求量,直至下一个统计时间窗口再次进行调整,通过实际的业务请求探测下游服务的可用性,并配置每个阶段的比例,防止过多流量冲击下游服务。
实际应用中,本实施例的第二微服务节点的数量为多个,所述根据获取的所述第二微服务节点的健康指示信息,得到所述第二微服务节点当前的健康度包括:为每个所述第二微服务节点设置对应的定时器,各所述定时器的时长不同,所述定时器的时长指示与所述第二微服务节点对应的所述记录时间窗的长度。例如:第二微服务节点的数量为五个,五个第二微服务节点的记录时间窗分别为:0.2s,1s,1.5s,2s,4s。
为了降低计算成本,节省系统开销,本实施例针对不同的第二微服务节点,采用单线程并配合使用异步定时器,在单独一个线程中支持了灵活的记录时间窗口长度设置,也就是说,在为每个所述第二微服务节点设置对应的定时器之后,该方法还包括:创建一个线程,通过所述线程在所述定时器的时间到达(比如每个1.5s到达时)时,采集与所述定时器对应的所述第二微服务节点的健康指示信息,得到一个所述记录时间窗内的健康指示信息。
如果不使用异步定时器机制,则需要为每个微服务节点都增加一个线程,或者使用一个线程并以固定(0.1s)的时间间隔循环计算。前者增加了使用的线程数量和系统开销,后者增加了计算成本。而本实施例中只采用一个线程,该线程在不同的时间点进行异步探活,既降低了计算成本又节省了系统资源开销在实现熔断功能的基础上,最小限度的增加服务本身的负担。
与前述实施例的熔断恢复方法同属于一个技术构思,本发明实施例还提供了一种熔断恢复装置,图4是本发明一个实施例的一种熔断恢复装置的框图,参见图4,熔断恢复装置400,应用于微服务架构中的微服务节点,所述微服务架构包括多个所述微服务节点,熔断恢复装置400包括:
探活单元401,用于在对第二微服务节点熔断预设时间段后的预设时间点,通知第一微服务节点转发部分业务请求到所述第二微服务节点,其中,所述第二微服务节点是指被所述第一微服务节点调用的微服务节点;
恢复单元402,用于根据获取的所述第二微服务节点的健康指示信息,得到所述第二微服务节点当前的健康度,并通知所述第一微服务节点转发第一个数个业务请求到所述第二微服务节点;其中,所述健康指示信息是所述第二微服务节点在当前统计时间窗内的健康指示信息,所述第一个数是与所述第二微服务节点当前的健康度相匹配的个数。
在本发明的一个实施例中,恢复单元402,具体用于获取所述第二微服务节点在当前统计时间窗内的健康指示信息;所述健康指示信息包括成功调用次数、失败调用次数和熔断次数,所述当前统计时间窗包括当前时间点之前的一个或多个记录时间窗,所述记录时间窗为记录所述第二微服务节点的健康指示信息的最小时间单位;根据所述成功调用次数、失败调用次数和熔断次数,计算得到所述第二微服务节点当前的健康度;所述健康度指示成功调用次数在总次数中的占比,所述总次数由所述成功调用次数、失败调用次数和熔断次数共同确定。
在本发明的一个实施例中,恢复单元402用于将所述第二微服务节点当前的健康度与预设健康度阈值范围进行比较,根据比较结果,确定与所述第二微服务节点当前的健康度相匹配的第一个数,具体包括如果所述第二微服务节点当前的健康度超过所述预设健康度阈值范围的上限值,则在上一个统计时间窗内转发的业务请求数的基础上增加预设个数得到所述第一个数;如果所述第二微服务节点当前的健康度低于所述预设健康度阈值范围的下限值,则在上一个统计时间窗内转发的业务请求数的基础上减少预设个数得到所述第一个数;如果所述第二微服务节点当前的健康度在所述预设健康度阈值范围内,则在上一个统计时间窗内转发的业务请求数的基础上保持不变,得到所述第一个数。
在本发明的一个实施例中,所述第二微服务节点的数量为多个,恢复单元402具体用于为每个所述第二微服务节点设置对应的定时器,各所述定时器的时长不同,所述定时器的时长指示与所述第二微服务节点对应的所述记录时间窗的长度。
在本发明的一个实施例中,恢复单元402具体用于在为每个所述第二微服务节点设置对应的定时器之后,创建一个线程,通过所述线程在所述定时器的时间到达时,采集与所述定时器对应的所述第二微服务节点的健康指示信息,得到一个记录时间窗内的健康指示信息。
需要说明的是,关于图4所示熔断恢复装置中的各单元所执行的各功能的举例解释说明,与前述方法实施例中的举例解释说明一致,这里不再一一赘述。
综上所述,本发明实施例的熔断恢复方法和装置,通过对微服务节点熔断预设时间段后的预设时间点转发部分业务请求到该微服务节点,开始探测下游服务即该微服务节点的可用性,通过探测充分利用下游服务,提高下游服务节点的利用率,降低对业务的影响。根据该微服务节点的健康指示信息,得到该微服务节点当前的健康度,转发第一个数个业务请求到该微服务节点,由于第一个数与该微服务节点当前的健康度相匹配,从而实现阶梯式、可配置的熔断恢复,每个阶段转发与该阶段微服务节点健康度相适配数量的业务请求,防止过多流量冲击下游服务,避免了微服务节点再次触发熔断,保证微服务节点和微服务架构的稳定性、可靠性。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的页面性能测试装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
例如,图5是本发明一个实施例的微服务节点的示意图。该微服务节点500包括:处理器510,以及存储有可在所述处理器510上运行的计算机程序的存储器520。处理器510,用于在执行所述存储器520中的计算机程序时执行本发明中方法的各步骤。存储器520可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器520具有存储用于执行上述方法中的任何方法步骤的计算机程序531的存储空间530。计算机程序531可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为例如图6所述的计算机可读存储介质。
图6是本发明一个实施例的一种非瞬时性计算机可读存储介质的结构示意图。该计算机可读存储介质600存储有用于执行根据本发明的方法步骤的计算机程序531,可以被微服务节点500的处理器510读取,当计算机程序531由微服务节点500运行时,导致该微服务节点500执行上面所描述的方法中的各个步骤,具体来说,该计算机可读存储介质存储的计算程序531可以执行上述任一实施例中示出的方法。计算机程序531可以以适当形式进行压缩。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (13)
1.一种熔断恢复方法,应用于微服务架构中的微服务节点,所述微服务架构包括多个所述微服务节点,其特征在于,所述熔断恢复方法包括:
在对第二微服务节点熔断预设时间段后的预设时间点,通知第一微服务节点转发部分业务请求到所述第二微服务节点,其中,所述第二微服务节点是指被所述第一微服务节点调用的微服务节点;
根据获取的所述第二微服务节点的健康指示信息,得到所述第二微服务节点当前的健康度,并通知所述第一微服务节点转发第一个数个业务请求到所述第二微服务节点;其中,所述健康指示信息是所述第二微服务节点在当前统计时间窗内的健康指示信息,所述第一个数是与所述第二微服务节点当前的健康度相匹配的个数。
2.如权利要求1所述的方法,其特征在于,所述根据获取的所述第二微服务节点的健康指示信息,得到所述第二微服务节点当前的健康度包括:
获取所述第二微服务节点在当前统计时间窗内的健康指示信息;所述健康指示信息包括成功调用次数、失败调用次数和熔断次数,所述当前统计时间窗包括当前时间点之前的一个或多个记录时间窗,所述记录时间窗为记录所述第二微服务节点的健康指示信息的最小时间单位;
根据所述成功调用次数、失败调用次数和熔断次数,计算得到所述第二微服务节点当前的健康度;所述健康度指示成功调用次数在总次数中的占比,所述总次数由所述成功调用次数、失败调用次数和熔断次数共同确定。
3.如权利要求1所述的方法,其特征在于,所述通知所述第一微服务节点转发第一个数个业务请求到所述第二微服务节点包括:
将所述第二微服务节点当前的健康度与预设健康度阈值范围进行比较,根据比较结果,确定与所述第二微服务节点当前的健康度相匹配的所述第一个数,
通知所述第一微服务节点转发所述第一个数个业务请求到所述第二微服务节点。
4.如权利要求3所述的方法,其特征在于,所述根据比较结果,确定与所述第二微服务节点当前的健康度相匹配的所述第一个数包括:
如果所述第二微服务节点当前的健康度超过所述预设健康度阈值范围的上限值,则在上一个统计时间窗内转发的业务请求数的基础上增加预设个数得到所述第一个数;
如果所述第二微服务节点当前的健康度低于所述预设健康度阈值范围的下限值,则在上一个统计时间窗内转发的业务请求数的基础上减少预设个数得到所述第一个数;
如果所述第二微服务节点当前的健康度在所述预设健康度阈值范围内,则在上一个统计时间窗内转发的业务请求数的基础上保持不变,得到所述第一个数。
5.如权利要求2所述的方法,其特征在于,所述第二微服务节点的数量为多个,
所述根据获取的所述第二微服务节点的健康指示信息,得到所述第二微服务节点当前的健康度包括:
为每个所述第二微服务节点设置对应的定时器,各所述定时器的时长不同,所述定时器的时长指示与所述第二微服务节点对应的所述记录时间窗的长度。
6.如权利要求5所述的方法,其特征在于,在为每个所述第二微服务节点设置对应的定时器之后,该方法还包括:
创建一个线程,
通过所述线程在所述定时器的时间到达时,采集与所述定时器对应的所述第二微服务节点的健康指示信息,得到一个所述记录时间窗内的健康指示信息。
7.一种熔断恢复装置,应用于微服务架构中的微服务节点,所述微服务架构包括多个所述微服务节点,其特征在于,熔断恢复装置包括:
探活单元,用于在对第二微服务节点熔断预设时间段后的预设时间点,通知第一微服务节点转发部分业务请求到所述第二微服务节点,其中,所述第二微服务节点是指被所述第一微服务节点调用的微服务节点;
恢复单元,用于根据获取的所述第二微服务节点的健康指示信息,得到所述第二微服务节点当前的健康度,并通知所述第一微服务节点转发第一个数个业务请求到所述第二微服务节点;其中,所述健康指示信息是所述第二微服务节点在当前统计时间窗内的健康指示信息,所述第一个数是与所述第二微服务节点当前的健康度相匹配的个数。
8.如权利要求7所述的装置,其特征在于,所述恢复单元,具体用于获取所述第二微服务节点在当前统计时间窗内的健康指示信息;所述健康指示信息包括成功调用次数、失败调用次数和熔断次数,所述当前统计时间窗包括当前时间点之前的一个或多个记录时间窗,所述记录时间窗为记录所述第二微服务节点的健康指示信息的最小时间单位;根据所述成功调用次数、失败调用次数和熔断次数,计算得到所述第二微服务节点当前的健康度;所述健康度指示成功调用次数在总次数中的占比,所述总次数由所述成功调用次数、失败调用次数和熔断次数共同确定。
9.如权利要求7所述的装置,其特征在于,所述恢复单元,用于将所述第二微服务节点当前的健康度与预设健康度阈值范围进行比较,根据比较结果,确定与所述第二微服务节点当前的健康度相匹配的第一个数,具体包括如果所述第二微服务节点当前的健康度超过所述预设健康度阈值范围的上限值,则在上一个统计时间窗内转发的业务请求数的基础上增加预设个数得到所述第一个数;如果所述第二微服务节点当前的健康度低于所述预设健康度阈值范围的下限值,则在上一个统计时间窗内转发的业务请求数的基础上减少预设个数得到所述第一个数;如果所述第二微服务节点当前的健康度在所述预设健康度阈值范围内,则在上一个统计时间窗内转发的业务请求数的基础上保持不变,得到所述第一个数。
10.如权利要求7所述的装置,其特征在于,所述恢复单元,用于在为每个所述第二微服务节点设置对应的定时器之后,创建一个线程,通过所述线程在所述定时器的时间到达时,采集与所述定时器对应的所述第二微服务节点的健康指示信息,得到一个记录时间窗内的健康指示信息。
11.一种微服务节点,其特征在于,微服务节点包括:处理器和存储器,
所述存储器,存储有可在所述处理器上运行的计算机程序;
所述处理器,用于在执行所述存储器中的计算机程序时实现权利要求1-6中任一项所述的方法。
12.一种微服务架构,其特征在于,微服务架构包括:多个如权利要求11所述的微服务节点。
13.一种非瞬时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910193337.1A CN109976935B (zh) | 2019-03-14 | 2019-03-14 | 微服务架构、微服务节点及其熔断恢复方法、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910193337.1A CN109976935B (zh) | 2019-03-14 | 2019-03-14 | 微服务架构、微服务节点及其熔断恢复方法、装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109976935A true CN109976935A (zh) | 2019-07-05 |
CN109976935B CN109976935B (zh) | 2020-09-04 |
Family
ID=67078859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910193337.1A Active CN109976935B (zh) | 2019-03-14 | 2019-03-14 | 微服务架构、微服务节点及其熔断恢复方法、装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109976935B (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110535902A (zh) * | 2019-07-16 | 2019-12-03 | 平安普惠企业管理有限公司 | 基于微服务实现监控智能化的处理方法及电子装置 |
CN110888780A (zh) * | 2019-11-19 | 2020-03-17 | 泰康保险集团股份有限公司 | 应用监控方法、装置、设备及存储介质 |
CN110995472A (zh) * | 2019-11-15 | 2020-04-10 | 苏州浪潮智能科技有限公司 | 一种微服务业务熔断方法和系统 |
CN110995780A (zh) * | 2019-10-30 | 2020-04-10 | 北京文渊佳科技有限公司 | Api调用方法、装置、存储介质及电子设备 |
CN111078453A (zh) * | 2019-12-17 | 2020-04-28 | 深圳前海环融联易信息科技服务有限公司 | 微服务自动熔断和恢复方法、装置、计算机设备及存储介质 |
CN111510480A (zh) * | 2020-04-08 | 2020-08-07 | 北京百度网讯科技有限公司 | 一种请求发送方法、装置以及第一服务器 |
CN111639681A (zh) * | 2020-05-09 | 2020-09-08 | 同济大学 | 基于教唆型欺诈的预警方法、系统、介质及设备 |
CN111698301A (zh) * | 2020-05-29 | 2020-09-22 | 成都新希望金融信息有限公司 | 一种保证服务延续的服务管理方法、装置及存储介质 |
CN111770134A (zh) * | 2020-05-25 | 2020-10-13 | 国电南瑞科技股份有限公司 | 一种基于服务质量的服务熔断方法 |
CN111882067A (zh) * | 2020-07-24 | 2020-11-03 | 北京睿知图远科技有限公司 | 一种基于数据统计的动态熔断算法及电子设备 |
CN112965823A (zh) * | 2021-03-24 | 2021-06-15 | 百度在线网络技术(北京)有限公司 | 调用请求的控制方法、装置、电子设备和存储介质 |
CN112988546A (zh) * | 2021-04-21 | 2021-06-18 | 福建天晴在线互动科技有限公司 | 一种支付系统防止服务雪崩的熔断方案及系统 |
CN113132434A (zh) * | 2019-12-31 | 2021-07-16 | 湖北亿咖通科技有限公司 | 一种分布式业务处理方法、装置、设备及存储介质 |
CN113177796A (zh) * | 2020-01-08 | 2021-07-27 | 联易软件有限公司 | 用于食品监管的微服务系统 |
CN113472879A (zh) * | 2021-06-29 | 2021-10-01 | 中国平安财产保险股份有限公司 | 一种服务请求的方法、装置、计算机设备及存储介质 |
CN113676434A (zh) * | 2020-05-13 | 2021-11-19 | 华为技术有限公司 | 网络资源的熔断方法、装置、电子设备及存储介质 |
CN114363153A (zh) * | 2020-09-27 | 2022-04-15 | 中国电信股份有限公司 | 熔断器和服务的自适应熔断方法 |
CN115118769A (zh) * | 2022-06-28 | 2022-09-27 | 深圳前海微众银行股份有限公司 | 一种业务系统参数配置、微服务执行方法及装置 |
CN115174658A (zh) * | 2022-07-01 | 2022-10-11 | 中国工商银行股份有限公司 | 服务处理方法及相关装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201508635A (zh) * | 2013-08-28 | 2015-03-01 | Via Tech Inc | 多核心微處理器動態重新配置 |
CN105306507A (zh) * | 2014-07-18 | 2016-02-03 | 阿里巴巴集团控股有限公司 | 分布式架构中的容灾处理方法及容灾处理装置 |
US20170093961A1 (en) * | 2015-09-28 | 2017-03-30 | Verizon Patent And Licensing Inc. | Networking functions in a micro-services architecture |
CN106776099A (zh) * | 2017-01-11 | 2017-05-31 | 北京皮尔布莱尼软件有限公司 | 一种服务熔断隔离系统和方法 |
CN107317702A (zh) * | 2017-06-13 | 2017-11-03 | 广东神马搜索科技有限公司 | 在线服务系统的服务级别控制方法与系统 |
CN107659431A (zh) * | 2017-08-15 | 2018-02-02 | 北京趣拿软件科技有限公司 | 接口处理方法、装置、存储介质和处理器 |
CN107846295A (zh) * | 2016-09-19 | 2018-03-27 | 华为技术有限公司 | 微服务配置装置及方法 |
CN108429812A (zh) * | 2018-03-21 | 2018-08-21 | 上海艾融软件股份有限公司 | 一种传统金融系统微服务实施的ip固化方法 |
CN109257294A (zh) * | 2018-09-07 | 2019-01-22 | 武汉斗鱼网络科技有限公司 | 基于redis的服务动态降级方法、装置、服务器及存储介质 |
-
2019
- 2019-03-14 CN CN201910193337.1A patent/CN109976935B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201508635A (zh) * | 2013-08-28 | 2015-03-01 | Via Tech Inc | 多核心微處理器動態重新配置 |
CN105306507A (zh) * | 2014-07-18 | 2016-02-03 | 阿里巴巴集团控股有限公司 | 分布式架构中的容灾处理方法及容灾处理装置 |
US20170093961A1 (en) * | 2015-09-28 | 2017-03-30 | Verizon Patent And Licensing Inc. | Networking functions in a micro-services architecture |
CN107846295A (zh) * | 2016-09-19 | 2018-03-27 | 华为技术有限公司 | 微服务配置装置及方法 |
CN106776099A (zh) * | 2017-01-11 | 2017-05-31 | 北京皮尔布莱尼软件有限公司 | 一种服务熔断隔离系统和方法 |
CN107317702A (zh) * | 2017-06-13 | 2017-11-03 | 广东神马搜索科技有限公司 | 在线服务系统的服务级别控制方法与系统 |
CN107659431A (zh) * | 2017-08-15 | 2018-02-02 | 北京趣拿软件科技有限公司 | 接口处理方法、装置、存储介质和处理器 |
CN108429812A (zh) * | 2018-03-21 | 2018-08-21 | 上海艾融软件股份有限公司 | 一种传统金融系统微服务实施的ip固化方法 |
CN109257294A (zh) * | 2018-09-07 | 2019-01-22 | 武汉斗鱼网络科技有限公司 | 基于redis的服务动态降级方法、装置、服务器及存储介质 |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110535902A (zh) * | 2019-07-16 | 2019-12-03 | 平安普惠企业管理有限公司 | 基于微服务实现监控智能化的处理方法及电子装置 |
CN110995780A (zh) * | 2019-10-30 | 2020-04-10 | 北京文渊佳科技有限公司 | Api调用方法、装置、存储介质及电子设备 |
CN110995472A (zh) * | 2019-11-15 | 2020-04-10 | 苏州浪潮智能科技有限公司 | 一种微服务业务熔断方法和系统 |
CN110888780A (zh) * | 2019-11-19 | 2020-03-17 | 泰康保险集团股份有限公司 | 应用监控方法、装置、设备及存储介质 |
CN111078453A (zh) * | 2019-12-17 | 2020-04-28 | 深圳前海环融联易信息科技服务有限公司 | 微服务自动熔断和恢复方法、装置、计算机设备及存储介质 |
CN111078453B (zh) * | 2019-12-17 | 2024-03-29 | 深圳前海环融联易信息科技服务有限公司 | 微服务自动熔断和恢复方法、装置、计算机设备及存储介质 |
CN113132434A (zh) * | 2019-12-31 | 2021-07-16 | 湖北亿咖通科技有限公司 | 一种分布式业务处理方法、装置、设备及存储介质 |
CN113132434B (zh) * | 2019-12-31 | 2023-03-24 | 亿咖通(湖北)技术有限公司 | 一种分布式业务处理方法、装置、设备及存储介质 |
CN113177796A (zh) * | 2020-01-08 | 2021-07-27 | 联易软件有限公司 | 用于食品监管的微服务系统 |
CN111510480A (zh) * | 2020-04-08 | 2020-08-07 | 北京百度网讯科技有限公司 | 一种请求发送方法、装置以及第一服务器 |
CN111639681A (zh) * | 2020-05-09 | 2020-09-08 | 同济大学 | 基于教唆型欺诈的预警方法、系统、介质及设备 |
CN113676434B (zh) * | 2020-05-13 | 2023-03-24 | 华为技术有限公司 | 网络资源的熔断方法、装置、电子设备及存储介质 |
CN113676434A (zh) * | 2020-05-13 | 2021-11-19 | 华为技术有限公司 | 网络资源的熔断方法、装置、电子设备及存储介质 |
CN111770134B (zh) * | 2020-05-25 | 2024-03-29 | 国电南瑞科技股份有限公司 | 一种基于服务质量的服务熔断方法 |
CN111770134A (zh) * | 2020-05-25 | 2020-10-13 | 国电南瑞科技股份有限公司 | 一种基于服务质量的服务熔断方法 |
CN111698301A (zh) * | 2020-05-29 | 2020-09-22 | 成都新希望金融信息有限公司 | 一种保证服务延续的服务管理方法、装置及存储介质 |
CN111882067A (zh) * | 2020-07-24 | 2020-11-03 | 北京睿知图远科技有限公司 | 一种基于数据统计的动态熔断算法及电子设备 |
CN114363153A (zh) * | 2020-09-27 | 2022-04-15 | 中国电信股份有限公司 | 熔断器和服务的自适应熔断方法 |
CN114363153B (zh) * | 2020-09-27 | 2024-01-26 | 中国电信股份有限公司 | 熔断器和服务的自适应熔断方法 |
CN112965823B (zh) * | 2021-03-24 | 2023-12-26 | 百度在线网络技术(北京)有限公司 | 调用请求的控制方法、装置、电子设备和存储介质 |
CN112965823A (zh) * | 2021-03-24 | 2021-06-15 | 百度在线网络技术(北京)有限公司 | 调用请求的控制方法、装置、电子设备和存储介质 |
CN112988546A (zh) * | 2021-04-21 | 2021-06-18 | 福建天晴在线互动科技有限公司 | 一种支付系统防止服务雪崩的熔断方案及系统 |
CN113472879B (zh) * | 2021-06-29 | 2023-12-08 | 中国平安财产保险股份有限公司 | 一种服务请求的方法、装置、计算机设备及存储介质 |
CN113472879A (zh) * | 2021-06-29 | 2021-10-01 | 中国平安财产保险股份有限公司 | 一种服务请求的方法、装置、计算机设备及存储介质 |
CN115118769B (zh) * | 2022-06-28 | 2024-02-02 | 深圳前海微众银行股份有限公司 | 一种业务系统参数配置、微服务执行方法及装置 |
CN115118769A (zh) * | 2022-06-28 | 2022-09-27 | 深圳前海微众银行股份有限公司 | 一种业务系统参数配置、微服务执行方法及装置 |
CN115174658A (zh) * | 2022-07-01 | 2022-10-11 | 中国工商银行股份有限公司 | 服务处理方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109976935B (zh) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109976935A (zh) | 微服务架构、微服务节点及其熔断恢复方法、装置 | |
Jayathilaka et al. | Performance monitoring and root cause analysis for cloud-hosted web applications | |
CN108762911A (zh) | 定时任务管理方法、装置、计算机设备及存储介质 | |
CN105138459B (zh) | 一种对软件程序进行测试的方法及装置 | |
US20150032884A1 (en) | Method and system for combining trace data describing multiple individual transaction executions with transaction processing infrastructure monitoring data | |
US20130226526A1 (en) | Automated Performance Data Management and Collection | |
CN108845912B (zh) | 服务接口调用故障的报警方法及计算设备 | |
CN112241350B (zh) | 微服务评估方法、装置、计算设备及微服务检测系统 | |
US10169137B2 (en) | Dynamically detecting and interrupting excessive execution time | |
CN110727556A (zh) | 一种bmc健康状态监控方法、系统、终端及存储介质 | |
CN110224885A (zh) | 设备监控的告警方法、装置、存储介质及电子设备 | |
US11057280B2 (en) | User interface with expected response times of commands | |
CN109117298A (zh) | 一种硬件故障修复方法、装置及设备 | |
CN109558313B (zh) | 构建异常测试场景的方法及装置 | |
CN107579861A (zh) | 基于多线路监测的网站可用性告警方法、装置及电子设备 | |
CN110309016A (zh) | 一种熔断恢复方法、装置及服务器 | |
CN109739527A (zh) | 一种客户端灰度发布的方法、装置、服务器和存储介质 | |
CN108492150A (zh) | 实体热度的确定方法及系统 | |
CN104991866B (zh) | Js程序的调试方法及装置 | |
CN109213659A (zh) | 一种设备内存状态的监测方法、装置及存储介质 | |
CN108768793A (zh) | 一种存储双活链路故障测试方法及装置 | |
CN110489260A (zh) | 故障识别方法、装置及bmc | |
CN110971478B (zh) | 云平台服务性能的压测方法、装置及计算设备 | |
US9594667B2 (en) | Enhancing weak consistency | |
CN109815067A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |