我正在使用 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 中,它具有用于负载平衡和断路器的 Ribbon
和 Hystrix
依赖项。 Zuul是spring-cloud的微服务解决方案的一部分,处理网关的工作就像普通的网络网关一样。
认为很难回答 Zuul 是(或不是)瓶颈。
也许问题的要点是如何避免网络网关成为瓶颈
?
关于java - 如何避免Zuul成为瓶颈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52369973/