2017-12-03 64 views
0

根据理解,Hystrix回退逻辑在发生某些情况时触发,例如请求超时,线程池以100%的容量运行或依赖关系抛出异常。除了这3个因素外,我还可以添加更多的条件,这些条件也被认为是失败的,例如413(负载太大)等任何特定的HTTP错误代码?在Hystrix中触发回退的自定义错误条件

回答

0

豪猪的备用方法将在以下条件下被称为

  • 开路
  • 信号/线程池拒绝
  • 执行失败(按你的方法排除HystrixBadRequestException抛出的任何异常)
  • 您的方法超时(hystrix超时)

只有部分临时t直接关系到用户代码执行失败。

在这种情况下,回退将由run()方法抛出的任何异常触发。纯Hystrix通过HystrixCommand和Hystrix Javanica通过注释完全相同。

只有一个例外,它不会触发HystrixBadRequestException

因此,如果你想也触发回退的HTTP 413状态码,你必须只是扔你的方法中的任何异常。

如果您正在使用任何内置Hystrix支持(如Spring Cloud Feign)的库,则需要实现该库所需的一些内容。在Spring Cloud Feign的情况下,您可以实施自己的ErrorDecoder。默认错误解码器将触发所有4XX,5XX错误的后备。如果您不想触发除413之外的任何后退4XX错误,则可以在其中输入HystrixBadRequestException

相关问题