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

标签 java spring spring-boot spring-cloud

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

所以我想要的是:

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

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

最佳答案

目前有一个 open issue假装回退。还有一个 open issue用于 zuul 的回退。

关于java - Spring Cloud : How to define default fallback for Hystrix in Zuul gateway?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34058880/

相关文章:

java - Spring MVC @RequestBody 映射 Optional<Enum>

postgresql - 生产中的DOCKER环境

java - javax.xml.namespace 包可从多个模块访问

java - Eureka 的 Springboot 错误,浏览器显示 xml 而不是 json

java - 使用 Spring RCP 的桌面应用程序

java - 通过字符串中的名称从组件调用方法

java - 使用带有 spring 的 import.sql 将图像存储为 byte[]

java - 如何在特定包中获取带有某些注释的类

java - 如何每 2 秒更新 TextArea(Jframe) 中的变量?

java - Spring MVC 处理程序映射不起作用