java - 如何避免Zuul成为瓶颈

标签 java spring-boot spring-cloud netflix-zuul netflix-eureka

我正在使用 Ribbon/Eureka/Hystrix 和 Zuul 开发微服务架构,一切正常。但当我们使用微服务时,我们可以根据需要扩展微服务,并拥有同一 µservice 的不同实例。目前,负载均衡对于一个 Zuul 实例、作为集群的不同 Eureka 实例以及不同的 µservices 实例运行良好。问题是:我可以定义多个 Zuul 实例吗?如果是的话,Zuul 是否可以使用不同的端口进行访问并且正在失去其优势的反向代理角色?因为目前,我将其视为单点故障和潜在的瓶颈。

有人可以解释一下如何避免这个问题吗?

最佳答案

can I define more than one instance of Zuul?

在我看来,你可以而且实际上应该为使用 spring-cloud 构建的复杂微服务系统定义多个实例。

doesn't Zuul can be accessed using different ports and is losing the reverse-proxy role that's making its strength?

分布式系统中的多个实例可能会提高容错能力,并且可以处理微服务器系统中更复杂的路由,如果您设计的目的是什么,并且它与其强度没有太大关联。(也许我只是误解了OP的含义? )

我认为zuul的角色就像微服务的软件API网关,不仅是代理,还有身份验证动态路由安全。 .. 在 spring-cloud-starter-netflix-zuul 中,它具有用于负载平衡和断路器的 RibbonHystrix 依赖项。 Zuul是spring-cloud的微服务解决方案的一部分,处理网关的工作就像普通的网络网关一样。

认为很难回答 Zuul 是(或不是)瓶颈。 也许问题的要点是如何避免网络网关成为瓶颈

关于java - 如何避免Zuul成为瓶颈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52369973/

相关文章:

java - 如何 "remove the gobal prefix('/api') 然后转到 lb ://"when migrate to spring cloud gateway from zuul

spring-cloud - EnableEurekaClient 和 EnableDiscoveryClient 有什么区别?

java - android N 中解密失败

java - 包名应该是ProjectName还是CodeName?

java - Spring Boot - 添加延迟以显示 SOAP 响应

java - 升级到 Spring Boot 2 后,ObjectMapper 无法在没有默认构造函数的情况下反序列化

java - 带有配置服务器的 Spring Cloud Eureka

由于堆中存在大量 JSP/HTML 内容而导致 Java OutOfMemory

java: hibernate 直到网站完全加载

spring-boot - Spring Kafka 即使我暂停消费者,也总是在 5 分钟后重新平衡