1

如果 requestVolumeThreshold 没有明确配置怎么办?当第一个请求本身出错时,它会立即调用我的后备方法吗?回退方法是否应该由第 21 个请求调用?(默认 requestVolumeThreshold=20,errorThresholdPercentage=50%,metrics.rollingStats.timeInMilliseconds)。

4

1 回答 1

4

您需要区分回退条件和电路开路条件。

您的断路器的回退方法将在以下情况下被调用

  • 电路开路
  • 信号量/线程池拒绝
  • 执行失败(您的方法抛出的任何异常,不包括HystrixBadRequestException
  • 您的方法超时(hystrix 超时)

如您所见,电路开路只是执行回退方法的一种条件。

您在问题中编写的属性与电路开路有关,它们与确定回退执行没有直接关系。

因此,您的第一个请求的回退执行将由异常和超时决定。因为,此时,绝对电路处于关闭状态,并且您的线程池(或信号量)为空。

于 2017-11-11T01:41:47.760 回答