如何处理Zuul中的hystrix后备?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何处理Zuul中的hystrix后备?相关的知识,希望对你有一定的参考价值。

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

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

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

提前感谢。

答案

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

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

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

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

示例Istio, Linkerd

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

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

以上是关于如何处理Zuul中的hystrix后备?的主要内容,如果未能解决你的问题,请参考以下文章

如何处理片段中的onClick [重复]

片段如何处理触摸?

如何处理片段上的触摸事件?

在片段之间切换时如何处理相机?

如何处理 ViewModel 中的配置更改

如何处理地图碎片按钮?