如何处理Zuul中的hystrix后备?

问题描述 投票:0回答:1

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

我正在使用Spring Boot,zuul,hystrix和eureka进行简单的微服务项目。一种服务从另一种服务调用数据。但是当服务关闭时,响应为500,因此需要再次发送请求以获得预期结果。

但是最终用户不应该看到。因此,如果先前的请求失败/短路,是否有一种方法可以通过zuul向失败的服务再次发送http请求。

提前感谢。

spring spring-boot netflix-eureka netflix-zuul hystrix
1个回答
1
投票

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

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

api网关的目标是接受来自网络外部的流量并将其内部分发...因此抽象出他的复杂性(它实际上是分布式的外观/路由器)。例如:zuul, spring cloud gateway

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

示例Istio, Linkerd

但是您可以不使用服务网格来实现此关注。您的调用者微服务可以通过嵌入resilience4j之类的强大库来实现超时,重试和断路器,从而保护自己。(hystrix实际上已经寿终正寝了)

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

© www.soinside.com 2019 - 2024. All rights reserved.