Spring Cloud:如何在Zuul网关中为Hystrix定义默认回退?

时间:2015-12-03 05:58:02

标签: java spring spring-boot spring-cloud

我正在使用Spring Cloud Brixton.M3和Spring Boot 1.3.0.RELEASE。我在这方面有点新鲜(特别是在Spring Cloud中)。我创建了Registry Server(即Eureka实例),Config服务器和Gateway 根据我的要求,我拦截每个请求到达我的一个过滤器中的网关,以从Header中提取所需信息,并根据我抛出异常或使用Feign Client转发/验证该请求。有些时候,当hystrix无法联系到相应的服务或因为任何其他问题时,会抛出HystrixRuntimeException

所以我想要的是:

  1. 为每个转发请求提供默认回退方法,以便我可以相应地读取和处理它。
  2. @ControllerAdvice以外的全局异常处理,因为我没有提供任何自定义@HystrixCommand和Controller来调用服务(基于AOP的解决方案?)。
  3. 是否可以拦截每个失败的请求并重试它们一定次数?在内部它可能正在发生,但我可以覆盖此功能并处理每个失败的请求,因为TimedOutException或HttpConnectionPool异常?
  4. 更新
    在Zuul网关中提供自己的路由是一种好习惯吗?一起使用@RestController@HystrixCommand? (我认为这是一个坏主意,因为在一段时间内我们最终将会有大量的控制器,因此实际使用智能路由将无法按预期工作)

1 个答案:

答案 0 :(得分:2)

目前有一个open issue用于假装的后备。 zuul还有一个open issue的后备。