hystrix第一次请求错误回退

时间:2017-11-10 05:02:40

标签: hystrix circuit-breaker

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

1 个答案:

答案 0 :(得分:2)

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

断路器的后备方法将在以下条件下调用

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

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

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

因此,第一个请求的回退执行将由异常和超时决定。因为,此时,电路肯定是闭合状态,你的线程池(或信号量)是空的。