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

Spring Cloud: How to define default fallback for Hystrix in Zuul gateway?

我正在使用 Spring Cloud Brixton.M3 和 Spring Boot 1.3.0.RELEASE。我是这方面的新手(尤其是 Spring Cloud)。我已经创建了注册服务器(即 Eureka 实例)、配置服务器和网关。
根据我的要求,我在我的一个过滤器中拦截每个到达网关的请求,以从 Header 中提取所需的信息,并基于此我抛出异常或使用 Feign Client 转发/验证该请求。有时 hystrix 在无法访问相应服务或由于任何其他问题时抛出 HystrixRuntimeException

所以我想要的是:

  1. 为每个转发请求提供默认回退方法,以便我可以相应地读取和处理。
  2. @ControllerAdvice 之外的全局异常处理,因为我没有提供任何自定义 @HystrixCommand 和控制器来调用服务(基于 AOP 的解决方案?)。
  3. 是否可以拦截每个失败的请求并重试一定次数?在内部它可能正在发生,但我可以覆盖此功能并处理每个失败的请求,因为 TimedOutException 或因为 HttpConnectionPool 异常吗?

更新
在 Zuul 网关中提供自己的路由是一种好习惯吗?一起使用 @RestController@HystrixCommand 吗? (我认为这是个坏主意,因为在一段时间内我们最终会得到很多控制器,因此智能路由的实际使用不会像预期的那样工作)

目前有一个 open issue for fallbacks with feign. There is also an open issue 用于 zuul 的回退。