【问题标题】:How to handle hystrix fallback in zuul?如何处理 zuul 中的 hystrix 回退?
【发布时间】:2020-08-08 14:12:33
【问题描述】:

我是微服务的初学者,所以请帮助我解决这个问题,

我正在使用 spring boot、zuul、hystrix 和 eureka 开发简单的微服务项目。一项服务从另一项服务调用数据。但是当服务宕机时,响应是500,所以需要再次发送请求才能得到预期的结果。

但最终用户不应该看到它。那么如果之前的请求失败/短路,有没有办法再次使用zuul为失败的服务发送http请求。

提前致谢。

【问题讨论】:

    标签: spring spring-boot netflix-eureka netflix-zuul hystrix


    【解决方案1】:

    首先对于不可用的服务,http 代码 503 可能更合适。

    那么 Zuul 是一个 api 网关而不是一个服务网格。我认为您在这里混淆了这两个概念。

    api 网关的目标是接受来自网络外部的流量并在内部分配它......因此抽象他的复杂性(它实际上是一个分布式门面/路由器)。 示例:zuul, spring cloud gateway

    服务网格充当微服务之间的代理,并带来自动重试、断路器、跟踪、日志记录等通信方面。

    例如Istio, Linkerd

    但是你可以不用服务网格来实现这个问题。您的调用者微服务可以通过嵌入像resilience4j 这样的强大库来实现超时、重试和断路器来保护自己。(hystrix 实际上已经走到了生命的尽头)

    该库将为您提供一个 api,允许您通过一个特殊的代理来包装与外部(其他微服务)的通信,该代理将为您处理重试或/和断路器。 你应该看看:https://github.com/resilience4j/resilience4

    【讨论】:

      猜你喜欢
      • 2016-05-26
      • 2016-03-07
      • 2017-10-10
      • 2019-07-05
      • 2018-04-05
      • 1970-01-01
      • 2020-11-22
      • 1970-01-01
      • 2017-10-30
      相关资源
      最近更新 更多