微服务中一处熔断会触发层层熔断么?

新手上路,请多包涵

一个简单链路 a > b > c > d,如果d服务挂了那么会触发c > d的熔断,也就是c > d的调用会马上返回错误。如果因为d的错误,c也返回错误的话么,那么对b来说,在这条链路上的b > c的调用岂不是也会一直出错,从而触发b > c的熔断?(最后熔断 a > b)如果这样的话,这么做的意义是什么?

阅读 1.3k
1 个回答

熔断是为了防止因为访问超时、错误重试而引发的大量服务请求(雪崩),因为这会大量消耗服务器资源而影响其它可能正常的请求。

如果每一个 a 都需要 d ,d 挂了所有 a 都会失败,那么直接熔断到 a 其实并没有什么问题。

如果不是每一个 a 都需要 d ,比如 d 挂掉只会引起 50% c 失败,那么 b > c 是否要熔断就要看策略了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题