如何处理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后备?的主要内容,如果未能解决你的问题,请参考以下文章