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 服务级别的主要内容,如果未能解决你的问题,请参考以下文章

如何在 zuul 启用 Hystrix 断路器?

Spring Cloud系列之 HystrixZuulGateway

Spring Cloud系列之 HystrixZuulGateway

通过同一个 API 路由到 Zuul 中的不同服务

Netflix Zuul 在一个端口上,Hystrix Dashboard 在另一个端口上

Hystrix断路器在微服务网关中的应用(Spring Cloud Gateway)