怎样区分服务的『熔断』&『降级』

  • 熔断:是一种保护措施,一般是因为下游某个系统或节点出故障或过载后而采取的措施,以防止系统的雪崩效应。
类似一个电路里的保险丝,当输入电流超过预期时,为了保护后面的电器而熔断。
软件中也是一样,当上游(如网关)的请求过大,而下游(如订单系统)无法及时处理时,
上游会采取熔断措施,以免下游服务器因过载而宕机,以至整个系统不可用(雪崩效应)。
  • 降级:更倾向于保护系统不要过载,保证核心功能可以正常工作,有点舍小家顾大家的意思。
服务降级是从整个系统的负荷情况出发和考虑的,对某些负荷会比较高的情况,为了预防某些功能(业务场景)
出现负荷过载或者响应慢的情况,在其内部暂时舍弃对一些非核心的接口和数据的请求,而直接返回一个提前
准备好的fallback(退路)错误处理信息。这样,虽然提供的是一个有损的服务,但却保证了整个系统的
稳定性和可用性。
比如一个下单系统,当遭遇高并发时,系统负载很大,只保证下单成功,而下单所产生的如『赠送积分』
之类的功能,并不需要保证一定成功。这个时候要需要对『赠送积分』的服务进行降级处理,以保证
下单这个主功能不受影响。
  • 相同点
1. 目标一致: 都是从可用性和可靠性出发,为了防止系统崩溃;
2. 用户体验类似:最终都让用户体验到的是某些功能暂时不可用;
  • 不同点
触发原因不同: 服务熔断一般是某个服务(下游服务)故障引起,而服务降级一般是从整体负荷考虑; 

你可能感兴趣的:(怎样区分服务的『熔断』&『降级』)