【技术实现步骤摘要】
一种系统熔断实现方法及装置
[0001]本专利技术涉及微服务技术,更具体的说,是涉及一种系统熔断实现方法及装置。
技术介绍
[0002]在微服务分布式架构中,熔断是一个非常重要用来保障系统高可用和稳定性的技术方案。微服务系统由非常多的服务组成,一个服务通常会调用其他服务,这些服务可以是远程服务、数据库、第三方API等。然而,作为调用方的服务,无法保证被调用的服务的稳定性。如果被调用的服务出现了不稳定的情况,请求的响应时间变长,那么调用方服务的方法的响应时间也会变长,服务进程中会创建大量线程,最终可能耗尽服务资源,导致调用服务本身也变得不可用。进而在系统中产生放大的效果,单一服务的不可用层层级联,最后导致整个系统都不可用。当发生上述现象时,系统熔断可以暂时切断服务间不稳定的调用,避免局部不稳定因素导致系统整体的雪崩。熔断作为保护服务自身的手段,通常在调用方服务进行熔断规则配置,熔断规则包含:熔断资源名称、熔断策略(如慢调用比例、异常比例、异常数策略)、熔断阈值、熔断时长等。
[0003]业务系统在单体应用架构向微服务架 ...
【技术保护点】
【技术特征摘要】
1.一种系统熔断实现方法,其特征在于,包括:将通过不同请求参数调用同一外部系统接口的逻辑封装在同一个代码方法中,并将该代码方法定义为熔断资源;为所述熔断资源配置基于请求参数的熔断规则,所述熔断规则包括对应不同请求参数的不同的规则;获得用户请求,所述用户请求为可以触发所述熔断资源的请求,所述用户请求包括请求参数;基于所述用户请求和所述熔断规则确定是否对所述用户请求进行熔断。2.根据权利要求1所述的系统熔断实现方法,其特征在于,所述基于所述用户请求和所述熔断规则确定是否对所述用户请求进行熔断,包括:基于所述用户请求对应的熔断规则构建断路器对象列表;基于所述断路器对象列表中断路器对象的状态确定是否对所述用户请求进行熔断。3.根据权利要求2所述的系统熔断实现方法,其特征在于,所述基于所述断路器对象列表中的断路器对象的状态确定是否对所述用户请求进行熔断,包括:确定所述断路器对象的状态是否为关闭;若否,判断所述断路器对象的开启状态是否已到期;若已到期,设置所述断路器对象的状态的为半开启;若未到期,抛出熔断异常。4.根据权利要求1所述的系统熔断实现方法,其特征在于,还包括:在熔断规则被更新时,加载更新后的熔断规则,并构建请求参数与熔断阈值的映射关系,其中,所述更新后的熔断规则包括所述熔断阈值。5.根据权利要求1所述的系统熔断实现方法,其特征在于,还包括:基于所述用户请求更新断路器对象的状态。6.根据权利要求5所述的系统熔断实现方法,其特征在于,所述基于所述用户请求更新断路器对象的状态,包括:遍历所述用户请求关联的断路器对象列表,根据所述用户请求的实际响应时间和所述熔断规则中定义的慢调用时长阈值,基于滑动窗口算法更新慢调用计数器、调用总数计数器,并基于上述计数器的值,决定是否设置断路器的断路状态为开启或关闭。7.根据权利要求6所述的系统熔断实现方法,其特征在于,所述根据所述用户请求的实际响应时间和所述熔断规则中定义的慢调用时长阈值,基于滑动窗口算法更新慢调用计数器、调用总数计数器,并基于上述...
【专利技术属性】
技术研发人员:王中华,卢鹏飞,李雄清,孔颖,王骏飞,
申请(专利权)人:中国民航信息网络股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。