高并发系统设计--熔断降级

熔断降级主要用来解决由于依赖的资源或者服务不可用,最终导致整体服务宕机的情况。

在讨论熔断与降级的时候,一般会涉及到另一个专业名词:雪崩。雪崩主要是指由于局部故障最终导致全局故障,致使整个系统无法正常工作的情况。雪崩一般由服务间的级联反应引起,雪崩主要由两个方面引起:1. 资源耗尽或资源不足;2. 服务间相互依赖。

为了解决这种由于局部故障引发全局故障的问题,解决的思路就是在检测到某一个服务的响应时间出现异常时,切断调用它的服务与它之间的联系,让服务的调用快速返回失败,从而释放这次请求持有的资源。这个思路也就是我们经常提到的降级和熔断机制。

熔断机制指服务调用如果返回错误或者超时的次数超过一定阈值,则后续的请求不再发向远程服务而是暂时返回错误。这种机制会在调用方维护一个有限状态机。有三种状态:关闭状态(调用远程服务)、半打开状态(尝试调用远程服务)和打开状态(直接返回错误)。三种状态的转换如下图:
image

降级机制,是一个相对更大的概念,站在整体系统负载的角度上,放弃部分非核心功能或者服务,保证整体的可用性的方法,是一种有损的系统容错方式。上面介绍的熔断也属于一种降级机制,此外还包括限流降级和开关降级。

开关降级指的是在代码中预先埋设一些“开关”,用来控制服务调用的返回值,开关可以存储在配置中心中,系统出现问题需要降级时,通过配置中心动态修改,达到不重启服务快速降级的目地。例如:开关关闭的时候正常调用远程服务,开关打开时则执行降级的策略。

降级机制会放弃系统的非核心功能,只提供最小可用功能。例如:电商系统中只展示商品数据,不展示评论数据。不同的系统,会有不同的降级策略,例如:读数据场景,降级后可以只读取缓存数据;轮询查询场景,可以降低查询频率;写数据场景,可以把同步写转换成异步写,牺牲一些数据一致性保证系统的可用性。

总之,熔断和降级是保证系统稳定性和可用性的重要手段,在访问第三方服务或者资源的时候都需要考虑增加降级开关或者熔断机制,保证资源或者服务出现问题时,不会对整体系统产生灾难性的影响。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值