【问题标题】:How to avoid Zuul becoming a bottleneck如何避免 Zuul 成为瓶颈
【发布时间】:2019-02-21 12:14:30
【问题描述】:
我正在使用 Ribbon/Eureka/Hystrix 和 Zuul 开发微服务架构,一切正常。但是当我们使用微服务时,我们可以根据需要扩展我们的微服务,并拥有相同 µservice 的不同实例。目前,负载均衡与 Zuul 的一个实例、不同的 Eureka 实例作为集群和不同的 µservices 实例一起工作得很好。问题是:我可以定义多个 Zuul 实例吗?如果是的话,Zuul 是不是可以使用不同的端口访问,并且正在失去使其强大的反向代理角色?因为现在,我将其视为单点故障和潜在瓶颈。
谁能解释一下如何避免这个问题?
【问题讨论】:
标签:
java
spring-boot
spring-cloud
netflix-zuul
netflix-eureka
【解决方案1】:
以上答案是有效的。您还可以通过注册多个实例并将它们放在cloud-based load-balancer 后面(例如AWS ALB)来避免Zuul 成为瓶颈,这将扩展以满足流量需求。
【解决方案2】:
我可以定义多个 Zuul 实例吗?
在我看来,您可以并且实际上应该为使用 spring-cloud 构建的复杂微服务系统定义多个实例。
Zuul 不能使用不同的端口访问并且正在丢失
反向代理角色正在发挥作用?
分布式系统中的多个实例可能会增加容错能力,并且可以处理您的微服务器系统中更复杂的路由,如果您设计的话,它的强度并没有太大的关联。(可能我只是误解了 OP 的含义? )
我认为 zuul 的角色就像是一个用于微服务的软件 api 网关,不仅是代理,还有 Authentication、Dynamic Routing、Security。 .. 在 spring-cloud-starter-netflix-zuul 中,它具有 Ribbon 和 Hystrix 依赖项,用于负载平衡和断路器。 Zuul 是 spring-cloud 的 mircoservice 解决方案的一部分,处理网关的工作就像普通的网络网关一样。
认为说 Zuul 是(或不是)瓶颈很难回答。
请问题主是How to avoid network-gateway becoming a bottleneck吗?