[个人记录] 熔断与降级的关系

对于这块有点分不清楚 查阅相关资料和博客 记录一下自己的理解

 

服务A   调用  服务B     >>>      服务A=上游  ,  服务B=下游

 

降级的两种场景:

 

场景1、上游调用下游的服务因为某些原因调不通了,那么上游服务就调上游自己本地备用的逻辑吧。

 

例:上游服务调下游服务好长时间了都没有响应,直到超过设置的超时时间,那就不死等了,你下游的服务调不通,我调个自己的本地备用服务完成这次请求并且给用户return个合理解释  “网络异常,请稍后再试”  (* ̄︶ ̄)。

 

场景2、上游调用下游的服务因为某些原因 好多次 都调不通了,那下游这个服务基本是废了,熔断器直接把下游服务隔断吧,别浪费上游时间了,隔断之后,俺上游就不去尝试调你了,直接调俺本地备用的就完事了。

 

例: 这个场景就是熔断。

 

 


 

 

 

前几次的请求, 当下游服务异常的时候, 就是场景1;每次请求上游都会去调下游,直到我得到了下游反馈的异常信息(超时等),我才会去调上游备用的服务(return “网络异常,请稍后再试”)。

       

后边接着一个又一个的请求啊 ,  我就接着调啊调,调啊调......

       

直到我调用了 20个请求,其中有50%失败时,就是场景2,也就是发生了熔断或者说熔断器开启了。这个时候下游的服务就被熔断器隔断了,后续再有请求过来,调下游服务直接返回失败,不再调远程服务,直接调上游备用服务返回信息完事了。直到5s钟之后,熔断器变成半开状态,熔断器放开了一个口子去调下游服务,这又回到了场景1;之后调用  看看下游服务好了吗  能调通了吗!如果下游服务还是废的,那我熔断器再打开吧,把下游服务再给隔断,再次回到了场景2(熔断状态);如果下游服务能调通 , 则熔断器关闭,恢复正常调用。

 

总结: 降级有多种方式,熔断是其中之一。

 

 

 主要参考此篇:https://www.cnblogs.com/rjzheng/p/10340176.html

猜你喜欢

转载自www.cnblogs.com/mutumango/p/11349468.html
0条评论
添加一条新回复