Java 纠正弹簧云+;尤里卡+;祖尔建筑

Java 纠正弹簧云+;尤里卡+;祖尔建筑,java,spring,spring-cloud,netflix-eureka,netflix-zuul,Java,Spring,Spring Cloud,Netflix Eureka,Netflix Zuul,我有一个基于Spring云的应用程序 我在HTTP负载平衡器后面有两个网关服务器。网关服务器通过查询Eureka服务器的端点,将调用重定向到3种类型的后端服务器(让我们称它们为UI1、UI2、REST) 但是,如果我正确理解了Spring文档,那么一旦在客户端和端点之间建立了连接,在发生灾难之前,就不再需要Eureka了。客户端负载平衡意味着客户端现在知道端点,并且只要它工作,就不会从Eureka获取新端点 这通常很好,但在我的设置中,客户端实际上是网关服务器,而不是客户端浏览器。客户端浏览器连

我有一个基于Spring云的应用程序

我在HTTP负载平衡器后面有两个网关服务器。网关服务器通过查询Eureka服务器的端点,将调用重定向到3种类型的后端服务器(让我们称它们为UI1、UI2、REST)

但是,如果我正确理解了Spring文档,那么一旦在客户端和端点之间建立了连接,在发生灾难之前,就不再需要Eureka了。客户端负载平衡意味着客户端现在知道端点,并且只要它工作,就不会从Eureka获取新端点

这通常很好,但在我的设置中,客户端实际上是网关服务器,而不是客户端浏览器。客户端浏览器连接到HTTP负载平衡器。其他一切几乎都由网关管理

因此,如果我有两个网关和每种类型的6个后端服务器,那么我就不会从可伸缩性中得到任何好处。每个网关将拥有每种服务器类型的前两个后端服务器,仅此而已。其他4台服务器将挂在那里,等待前2台服务器出现超时或崩溃,以便为下一个请求提供服务

对我来说,这听起来不像是正确的架构。我希望Eureka/客户端负载平衡能够执行某种循环或其他方法,将我的呼叫尽可能均匀地分布在所有服务器之间


我错了吗?

您是否使用Ribbon来引用您的资源?访问服务时,您只需提供注册到Eureka的应用程序名称。这将对在Eureka注册的申请提出的所有请求进行循环。REST调用的URI示例可能是我在网关上纯粹使用@EnableZuulProxy,其余配置在application.yml完成。相关部分:zuul:retryable:true路由:ui1服务器:/ui1/**ui2服务器:/ui2/**api资源服务器:/rest/**eureka:client:serviceUrl:defaultZone:instance:metadataMap:instanceId:${spring.application.name}:${spring.application.instance_id:${random.value}抱歉,在这里找不到正确缩进的方法…@odedia ribbon默认情况下进行循环负载平衡。那么客户端负载平衡的含义是什么?我是否错误地认为一旦创建了端点之间的连接,Eureka就不在图中了?您是否使用ribbon引用您的资源?您应该简单地提供ap访问服务时向Eureka注册的应用程序名称。这将循环所有向Eureka注册的应用程序发出的请求。REST调用的示例URI可能是我在网关上纯粹使用@EnableZuulProxy,其余配置在application.yml完成。相关部分:zuul:retryable:true路由:ui1服务器:/ui1/**ui2服务器:/ui2/**api资源服务器:/rest/**eureka:client:serviceUrl:defaultZone:instance:metadataMap:instanceId:${spring.application.name}:${spring.application.instance_id:${random.value}很抱歉,在这里找不到正确缩进的方法…@odedia ribbon默认情况下进行循环负载平衡。那么客户端负载平衡的含义是什么?我是否错误地认为一旦创建了端点之间的连接,Eureka就不在图中了?