我从使用Netflix Zuul和Eureka(也许也是Ribbon)的文档中了解到,您可以构建一个主动负载均衡器。我一直使用带有R53的AWS ELB,ALB(用于容器管理的ECS)。
除了供应商的可移植性外,使用Netflix方法是否比使用AWS提供的ALB / ELB有任何优势?您是否需要使用Netflix OSS而不是使用开箱即用的AWS ELB?
答案 0 :(得分:0)
负载平衡器不管理客户端的弹性,例如重试,退避,服务注册表和路由。 Netflix OSS提供了中间层负载平衡和一些弹性功能。您将在AWS AppMesh和AWS Cloud Map中找到类似的功能。负载平衡器只是可以将客户端路由到功能,容器或实例的端点。使用负载平衡器和服务网格(来自Netflis OSS和/或AWS)肯定有助于提高应用程序的可靠性。
答案 1 :(得分:0)
Netflix OSS堆栈可以与ALB和ELB等一起使用。例如,即使使用ALB或ELB,您仍然需要某种API网关(Zuul可以实现的功能)来保护您的路由。此外,Ribbon和Eureka还可用于服务发现(或者您可以在Zuul配置中简单地对通往其他微服务的路由进行硬编码,而不必费心地站起Eureka服务器)。因此,您可以将Zuul用作与ECS中的其他微服务共享相同的ALB的容器,并让来自前端的所有请求先到达通往Zuul的路由,然后根据请求,让Zuul决定到哪个微服务路由代理请求。如果您不使用ECS或容器,则同样的架构模式也适用于EC2 VM。