服务降级和熔断

       个人理解:

       在请求某一个服务时,由于超时、错误或者其他异常,为了防止客户长时间等待并能够对此异常、错误及时返回一个预期处理,进一步防止服务雪崩,这个操作叫做服务降级。(可以在客户端做降级,也可以在服务端做降级)

       而熔断是指,在一定时间内的一定请求次数中,如果发生降级(异常、错误)的概率超过阈值时,就将该服务(某一方法)直接砍掉,禁用一段时间,在该时间段内,无论请求成功与否,均返回fallback方法,即服务始终处于降级状态。在该时间段过去后,如果有成功的请求出现,在将此服务恢复过来。

在这里插入图片描述
       可见,熔断和降级的关系可以理解为:

  • 熔断是由一定量的降级(错误/异常)所触发的,即量变引起质变。
  • 降级不一定熔断,熔断一定降级。

       可以举一个简单的例子,就像你去面试,面试官问了你一个问题,你没有回答上来,你只好找一个接口(类似降级)糊弄过去,接着面试官在一个小时内问了你10个问题,你有7个问题都没有答上来,你自己都不好意思再找接口搪塞过去,觉得自己还是先放弃(类似熔断)好了,下去再好好准备准备,下次再来面试,争取10个问题能答出至少8个。

       下面是熔断的一个执行流程(可见熔断机制有三种状态):
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42822484/article/details/105023212