Hystrix 断路器实现在 Zuul API 网关级别或 REST API 服务级别
Posted
技术标签:
【中文标题】Hystrix 断路器实现在 Zuul API 网关级别或 REST API 服务级别【英文标题】:Hystrix Circuit Breaker Implementation be at Zuul API Gateway Level or at REST API Service Level 【发布时间】:2019-03-19 03:40:22 【问题描述】:例如,我有两个 Rest Api 服务正在运行
-
https://my-app-one.com/get
https://my-app-two.com/update
在 Zuul API 网关实现之后,请求将被路由到
Zuul 代理:
代理 1:https://zuul-api-gateway.com/get 代理 2:https://zuul-api-gateway.com/update
问题:
-
我们可以在 Zuul API 网关级别实现 Hystrix Dashboard 吗?
如果在 API 网关级别实现,我们可以使用所有 Hystrix 命令吗?
有哪些挑战,请提供文档或示例。
我已经有一个 Hystrix Circuit Breaker 和 Hystrix Dashboard 的工作示例。我只想知道是否可以在 Zuul API 网关级别移动 Hystrix 实现。
【问题讨论】:
【参考方案1】:@IMNash:很遗憾,我无法对你原来的问题发表评论,所以恐怕我不得不通过答案问你。非常抱歉我需要这样做,但我还没有足够的声望点。
你必须走 Zuul 方式吗?如果没有,您可能需要考虑使用Spring Cloud Gateway。 Baeldung 的相关帖子令人大开眼界。看下面的sn-p:
//...route definition
.route(r -> r.path("/articles")
.filters(f -> f.hystrix("some-command"))
.uri("http://baeldung.com")
.id("hystrix_route")
我自己对此进行了测试,是的,应用 Hystrix 就是这么简单。 下一步是根据您的需要(例如超时、最大信号量等)配置 Hystrix 过滤器。
【讨论】:
谢谢... Greg.Route 定义看起来非常适合应用 Hystrix CB。我们也可以使用 Hystrix 过滤器吗?这就是你所说的。我还将查看 Baeldung 中的示例。 是的,使用 Hystrix GatewayFilter Factory,您几乎可以在任何方面配置 Hystrix(参见:cloud.spring.io/spring-cloud-gateway/multi/…)。【参考方案2】:我认为我们只能在个人休息服务级别实施 hystrix。我们无法在 zuul 路由级别实现 hystrix。
【讨论】:
以上是关于Hystrix 断路器实现在 Zuul API 网关级别或 REST API 服务级别的主要内容,如果未能解决你的问题,请参考以下文章
Spring Cloud系列之 HystrixZuulGateway
Spring Cloud系列之 HystrixZuulGateway