软件架构-服务限流降级熔断机制详解( 二 )


 

软件架构-服务限流降级熔断机制详解

文章插图
 
 
  • 服务熔断
远程服务不稳定或网络抖动时暂时关闭 , 就叫服务熔断 。举个通俗易懂的例子 , 就跟我们现实生活中的“跳闸”一样 , 跳闸应该都听说过吧 , 比如说家里有点短路了 , 那是不是闸会跳掉 , 等你把短路的问题找到并且修复后 , 然后你把这个闸一送 , 是不是整个家庭的电路又恢复了正常 。这就是熔断器 。
所以 , 同样的道理 , 当依赖的服务有大量超时时 , 在让新的请求去访问根本没有意义 , 只会无畏的消耗现有资源 。比如我们设置了超时时间为1s,如果短时间内有大量请求在1s内都得不到响应 , 就意味着这个服务出现了异常 , 此时就没有必要再让其他的请求去访问这个依赖了 , 这个时候就应该使用熔断器避免资源浪费 。
  • 服务降级
有服务熔断 , 必然要有服务降级 。所谓降级 , 就是当某个服务熔断之后 , 服务将不再被调用 , 此时客户端可以自己准备一个本地的fallback(回退)回调 , 返回一个缺省值 。例如:(备用接口/缓存/mock数据)这样做 , 虽然服务水平下降 , 但好歹可用 , 比直接挂掉要强 , 当然这也要看适合的业务场景 。
PS:这次说了雪崩的解决方案和这几种方案的介绍 , 下次讲讲如何通过springclud技术完成技术的落地 。




推荐阅读