首页 > 解决方案 > Spring Cloud Gateway 和容错

问题描述

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

标签: javaspring-cloudfault-tolerance

解决方案


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

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

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

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

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


推荐阅读