一、为什么需要熔断?
1.防止调用雪崩, 比方A->B->C,如果服务C不稳定,会造成B不用,C不可用
2. 保证核心服务基本可用
二、熔断是发生在服务方还是调用方?
更好的理解是熔断是通过AOP来实现的,当发生错误达到设定的规则以后,会执行fallback逻辑
a. 在调用方配置可以保证线程不被榨干
b. 在服务方配置可以快速失败,避免每个调用方都进行配置
三、如何使用熔断?
常见的框架(Hystrix)
隔离方式:
a. 信号量隔离(最大的请求数,不好控制超时)
b. 线程隔离(每个服务一个线程池,支持超时)
触发熔断的状态(超时,异常,拒绝)
参考:
https://blog.csdn.net/niugang0920/article/details/82386409
四、熔断框架的原理是什么?
熔断的几种状态
a. 关闭, 即服务正常
b. 开启, 调用的服务不正常,调用方走本地fallback进行降级
c. 半熔断, 经过一段时间以后, 允许有限的流量正常通过, 从而决定是继续熔断还是恢复