System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种微服务熔断机制优化方法及系统技术方案_技高网

一种微服务熔断机制优化方法及系统技术方案

技术编号:40171000 阅读:3 留言:0更新日期:2024-01-26 23:41
本发明专利技术公开了一种微服务熔断机制优化方法及系统,属于云计算及微服务应用治理技术领域,通过判定调用链下游服务的状态,识别各类异常风险并配置相应的熔断策略,对异常服务进行隔离和过载保护;所述配置熔断策略包括:开放每种熔断降级策略的自定义统计时长;将原本按照平均响应时间的策略优化为按照慢请求比率的策略;增加熔断器半开启状态,并配置熔断器监听来改变熔断器状态,通过事件监听来判定是否自动恢复。本发明专利技术解决云计算环境下,微服务架构应用发生服务异常、响应慢等问题造成调用链阻塞、业务中断的问题;实现微服务架构应用高并发下的流量治理和风险控制,进一步提升业务连续性和稳定性。

【技术实现步骤摘要】

本专利技术涉及云计算及微服务应用治理,具体地说是一种微服务熔断机制优化方法及系统


技术介绍

1、熔断一词,常见于股市或者电路系统,股市通过熔断来控制股票、期货或其他金融衍生产品的交易风险,电路系统通过保险丝熔断避免电流异常导致的风险。在信息系统中,熔断也称服务隔离或过载保护,在微服务应用中,服务存在一定的依赖关系,形成一定的依赖链,如果某个目标服务调用慢或者有大量超时,造成服务不可用,间接导致其他的依赖服务不可用,最严重的可能会阻塞整条依赖链,最终导致业务系统崩溃(又称雪崩效应)。此时,对该服务的调用执行熔断,对于后续请求,不再继续调用该目标服务,而是直接返回,从而可以快速释放资源。等到目标服务情况好转后,则可恢复其调用。

2、如图2所示,在某业务系统中,服务a和服务b之间是调用依赖关系,服务a在调用服务b时,如果发现服务b的节点2在某时间段内响应出现问题,服务的异常概率较高,超过了配置设定的失败率阈值,由此判断,在未来一段时间内服务b可能会一直保持这样的状态,导致服务a自身受到影响,因此,短时间内没有必要再去调用这个节点服务,需要设定一个周期,比如五秒,五秒钟之后,再重新调用b的节点2,并在一个时间段内重新计算请求数、异常数、失败率等判定指标,如果达标,则恢复调用,结束熔断,否则,将继续保持熔断状态。

3、sentinel是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。sentinel可以为同一个资源配置多个限流规则,并且在限流的基础上,支持配置熔断策略,如果接口的qps(每秒查询)未达到限流标准,但是服务本身已经出现多次响应异常,达到熔断的判定阈值,则可以直接出发熔断,以此来保护自身服务。

4、针对服务调用异常而触发熔断的情况,sentinel支持配置以下三种熔断的策略,分别是:

5、1、degrade_grade_rt:按平均响应耗时。sentinel会在秒级的滑动窗口中去统计和计算平均响应时间,如果连续多个请求到达阈值后,则触发熔断。

6、2、degrade_grade_exception_ratio:按失败比率。sentinel会统计在一个时间窗口内的失败总数和成功总数的比值,如果超过了阈值,则触发熔断。

7、3、degrade_grade_exception_count:按失败次数。sentinel统计在一个时间窗口内的失败总数,如果失败总数超过阈值,则触发熔断。

8、以上三种熔断策略在一定程度上,可以识别出服务调用过程中存在的异常情况,并通过触发熔断来保障调用链不会出现堆积造成系统性的风险。但是在实际应用过程中,这三类熔断策略对于慢调用、异常调用的判定并不友好,具体表现如下:

9、按平均响应耗时的配置策略,如果在一秒内的请求数量比较少,会导致各别响应慢的请求会将整体的平均响应时长拉低,假定某个服务接口常态调用的平均时长是200毫秒,熔断阈值为600毫秒,在某一秒内共有5个请求,而其中一个请求因为网络波动原因,耗时超过5秒,则整体的响应耗时会变为1160毫秒,后续需要有多个正常耗时的请求才可以将整体的平均耗时降下来,如果超过窗口时间,则极易触发熔断而影响业务正常运行。

10、按照失败比率的配置策略,主要通过失败总数和成功总数的比值来判断是否达到触发熔断的阈值,这种判定方法和按照平均响应耗时的策略有相同的问题,即单位时间的请求数量比较少的情况下,单个异常会影响整个调用周期的失败判定,拉高失败比率。假定一秒钟内只有两次调用,一次成功一次失败的话,则失败总数比成功总数为1:1,一定会触发熔断。

11、按照失败次数的配置策略,如果把1分钟内的失败次数作为判定值,即使时间窗口设定为1秒,并在时间窗口规定时间后关闭开关,开关也会立即再被打开,这种判定策略不适用于大多数的场景,这种配置策略也变得非常鸡肋。


技术实现思路

1、本专利技术的技术任务是针对以上不足之处,提供一种微服务熔断机制优化方法及系统,解决云计算环境下,微服务架构应用发生服务异常、响应慢等问题造成调用链阻塞、业务中断的问题,对保障业务稳定性有显著作用。

2、本专利技术解决其技术问题所采用的技术方案是:

3、一种微服务熔断机制优化方法,通过判定调用链下游服务的状态,识别各类异常风险并配置相应的熔断策略,对异常服务进行隔离和过载保护,避免异常风险导致服务不可用、服务响应慢等问题造成的系统性风险,保障业务系统的稳定性;所述配置熔断策略包括:

4、开放每种熔断降级策略的自定义统计时长;

5、将原本按照平均响应时间的策略优化为按照慢请求比率的策略;

6、增加熔断器半开启状态,并配置熔断器监听来改变熔断器状态,通过事件监听来判定是否自动恢复。

7、通过开放每种熔断降级的自定义统计时长以及将原本按照平均响应时间的策略优化为按照慢请求比率,解决当前熔断机制中因为个别长耗时响应引发的错误熔断问题,优化熔断策略,实现微服务应用的精准治理。通过新增熔断器半开启状态,并配置熔断器监听来改变熔断器状态,增加熔断策略的灵活性和适配度,提升微服务应用的治理效果,提升业务稳定性。

8、本方法针对当前sentinel组件针对慢调用、服务异常等情况下熔断策略判定适用度窄,不友好等问题进行优化,实现微服务架构应用高并发下的流量治理和风险控制,进一步提升业务连续性和稳定性。

9、优选的,所述开放每种熔断降级策略的自定义统计时长,

10、在熔断规则类degraderule中增加字段statintervalms来配置资源指标数据的统计时长;通过增加该字段,实现对于统计时长的灵活配置,更好地采集“密集”请求下的响应数据。

11、优选的,所述通过字段statintervalms来配置资源指标数据的统计时长,默认为1000毫秒。

12、优选的,通过增加statintervalms字段,将统计的时长设定为10秒,以更好地平均一个时间窗口内的真实响应情况,避免指标数据被单个长响应的请求所影响。

13、优选的,所述将原本按照平均响应时间的策略优化为按照慢请求比率的策略,以此来统计慢请求数,并将判定方式改为使用慢请求数与总请求数的比值与阈值比较;

14、选用这种熔断策略,设定慢请求阈值,当响应耗时超过了这个阈值后才被记为慢请求,判定依据由当前请求的响应耗时来决定,与平均耗时没有关系。

15、优选的,所述增加熔断器半开启状态,并配置熔断器监听来改变熔断器状态,

16、增加针对熔断器的半开启自动恢复模式,并通过注册自动以实践监听器来监听熔断器的状态;

17、熔断器初始状态为关闭状态,当达到熔断降级规则配置的阈值时,熔断器的状态从关闭状态变为开启状态;熔断器不能直接从开启状态变为关闭状态,只有处在半开启状态时本文档来自技高网...

【技术保护点】

1.一种微服务熔断机制优化方法,其特征在于,通过判定调用链下游服务的状态,识别各类异常风险并配置相应的熔断策略,对异常服务进行隔离和过载保护;所述配置熔断策略包括:

2.根据权利要求1所述的一种微服务熔断机制优化方法,其特征在于,所述开放每种熔断降级策略的自定义统计时长,

3.根据权利要求2所述的一种微服务熔断机制优化方法,其特征在于,所述通过字段statIntervalMs来配置资源指标数据的统计时长,默认为1000毫秒。

4.根据权利要求2或3所述的一种微服务熔断机制优化方法,其特征在于,通过增加statIntervalMs字段,将统计的时长设定为10秒。

5.根据权利要求1所述的一种微服务熔断机制优化方法,其特征在于,所述将原本按照平均响应时间的策略优化为按照慢请求比率的策略,统计慢请求数,将判定方式改为使用慢请求数与总请求数的比值与阈值比较;

6.根据权利要求1所述的一种微服务熔断机制优化方法,其特征在于,所述增加熔断器半开启状态,并配置熔断器监听来改变熔断器状态,

7.根据权利要求6所述的一种微服务熔断机制优化方法,其特征在于,所述熔断器可以从半开启状态变为关闭状态,也可以从半开启状态变为开启状态,但不能从关闭状态变为半开启状态。

8.根据权利要求6或7所述的一种微服务熔断机制优化方法,其特征在于,以下情况下,熔断器的半开启状态可以恢复为开启状态:

9.根据权利要求6所述的一种微服务熔断机制优化方法,其特征在于,

10.一种微服务熔断机制优化系统,其特征在于,该系统通过判定调用链下游服务的状态,识别各类异常风险并配置相应的熔断策略,对异常服务进行隔离和过载保护;

...

【技术特征摘要】

1.一种微服务熔断机制优化方法,其特征在于,通过判定调用链下游服务的状态,识别各类异常风险并配置相应的熔断策略,对异常服务进行隔离和过载保护;所述配置熔断策略包括:

2.根据权利要求1所述的一种微服务熔断机制优化方法,其特征在于,所述开放每种熔断降级策略的自定义统计时长,

3.根据权利要求2所述的一种微服务熔断机制优化方法,其特征在于,所述通过字段statintervalms来配置资源指标数据的统计时长,默认为1000毫秒。

4.根据权利要求2或3所述的一种微服务熔断机制优化方法,其特征在于,通过增加statintervalms字段,将统计的时长设定为10秒。

5.根据权利要求1所述的一种微服务熔断机制优化方法,其特征在于,所述将原本按照平均响应时间的策略优化为按照慢请求比率的策略,统计慢请求数...

【专利技术属性】
技术研发人员:吴镝陈焕新杨建张峰李存冰刘金革
申请(专利权)人:浪潮软件科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1