Spring Cloud Gateway和容错功能

时间:2019-05-28 02:04:16

标签: java spring-cloud fault-tolerance

我正在阅读有关弹簧云架构和技术(例如eureka,hystrix断路器)的信息,这些技术和技术用于防止由于某些微服务的故障而导致应用程序停机。总体而言,Spring Cloud建议将Spring Cloud Gateway用作所有微服务的入口点。所以我在问自己如何提供Spring Cloud Gateway本身的容错能力?正如我现在所看到的,如果此入口点将失败,那么所有这些技术(如eureka和hystrix断路器)将不可用,因为它们是在Spring Cloud Gateway级别上实现的。现在,当Spring Cloud Gateway关闭时,所有客户端将无法访问Spring Cloud Gateway后面的所有服务。那么如何处理这种情况呢?

1 个答案:

答案 0 :(得分:1)

老实说,我认为这与Spring Cloud Gateway没有直接关系。问题更多是“如何部署高度可用的Java应用程序?” (SCG是Spring应用程序)。

答案取决于您使用的平台。

  • 大多数IAAS平台都提供自己的基础架构负载平衡器,例如AWS中的ALB / ELB。

  • PAAS平台通常包括开箱即用的LB,例如Cloud Foundry或Kubernetes可以为您做到这一点。

由于您所描述的原因-TTL和客户端缓存,DNS可能不是最佳选择。而且,DNS确实没有办法对上游服务进行健康检查。因此,使用DNS时需要客户端负载平衡,这是当客户端需要智能时,如果请求失败,则使缓存/重试无效。