作者回复: 熔断后,请求会快速失败,不会将请求转发到其他节点的
作者回复: 这个是可以的。 可用性是成本和收益之间的平衡。
作者回复: 这个方式可行 不过更好的指标是“等待时间”,“等待数量”在突发流量的时候,会出现过载,但是可能系统并没有过载
作者回复: 这个是和实现方式相关的,如果内部实现是生产者消费者模型,可以通过埋点统计来实现,如果不是这种模型是不好统计的,对于这个问题,在“雪崩(四)”中还有进一步的讨论。
作者回复: Q1:你的理解是对的,前面就是描述在服务的调用方实现断路器的逻辑,熔断一般都是由框架来实现的。 Q2: A:熔断的敏感度高:可以这样来理解,假设熔断的粒度是服务,错误率超过 20% 就熔断,这个服务有非常多的实例和接口,如果一个接口异常了,但是其他的接口都是正常的,错误率就很难到 20%,也就不能触发熔断;如果粒度是一个实例的接口,阈值还是 20%,那么这个接口出现问题就能触发熔断了,敏感度高很多。 B:和 A 是同一个问题,是因为粒度粗,其他的接口是正常的,导致错误率很难道 10%。不是指熔断器的阈值不能大于 10 %。
作者回复: 是指在断开状态下,因为所有的请求都会直接熔断,但是熔断的服务可能慢慢会好的,所以一次断开是一个比较小的时候,比较 60 秒,然后进入半打开状态,半打开状态的逻辑在文中有描述的,主要是确认后端服务是否恢复了。