hystrix 首次请求错误回退

hystrix first request error fallback

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

需要区分回退条件和开路条件

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

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

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

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

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