简短的回答
功能区:
尤里卡:
启用:假
< /代码>
Spring Cloud Netflix zuuluse sNetflix_S Ribbonto performclient-side load balancing,and by default,Ribbonwould useNetflix eurekaforservice discovery。您将跳过“服务发现”,因此您已经设置了“功能区”。eureka.enabledtofalse。由于功能区=>strong>现在可以使用eureka=>strong>查找服务,您必须为会议指定一个URL=>code>服务:
会议:
丝带:
服务器列表:本地主机:8080
< /代码>
扩展的答案
我会让你更清楚一点。
依赖项org.springframework.cloud:spring cloud starter netflix zuul>,which you are currently using in thegatekeeperproject,has some compile dependencies:。
com.netflix.zuul:zuul-core
org.springframework.boot:spring boot starter web
org.springframework.boot:弹簧启动执行器
org.springframework.cloud:spring cloud netflix zuul
org.springframework.cloud:spring cloud starter
org.springframework.cloud:pring cloud starter netflix hystrix
org.springframework.cloud:spring cloud starter netflix功能区
org.springframework.cloud:SpringCloudStarterNetflixArchaius
< /代码>
如您所见,它构成了围绕com.netflix.zuul:zuul core>a>module(including eureka for instance discovery and bribbon for routing):收集的许多组件。

当您启动gategeeperapplication时,将应用默认的zuulproxyautoconfigurationconfiguration。它导入功能区配置类:
配置
@导入(RibbonCommandFactoryConfiguration.RestClientRibbonConfiguration.Class,
ribbonCommandFactoryConfiguration.okhttpribbonConfiguration.class,
RibbonCommandFactoryConfiguration.httpClientRibbonConfiguration.class,
httpclientconfiguration.class)
@Conditionalonbean(zuulproxymarkerconfiguration.marker.class)
公共类zuulproxyautoconfiguration扩展zuulserverautoconfiguration…}
< /代码>
httpClientRibbonConfiguration,依次初始化RibbonLoadBalancinghttpClientwhich is responsible for the error messages you saw.
ribbonloadbalancinghttpclientby default useszoneawareloadbalancerwhich comes from acom.netflix.bribbon:ribbon loadbalancerpackage:。
< Buff行情>
默认情况下,zuul负载平衡使用zoneawareloadbalancerFrom Ribbon.算法是Discovery中可用实例的循环,具有可用性Zone Success Tracking for Resilibility。负载均衡器将保留每个区域的统计信息,如果故障率高于可配置的阈值,则会删除一个区域。
如果您想使用自己的自定义负载均衡器,可以为该功能区客户端命名空间设置nfloadbalancerclassnameproperty,或者覆盖getloadbalancerclass()中的DefaultClientChannelManager。注意,您的类应该扩展dynamicServerlistLoadBalancer。
< /块引用>
它解释了zuul将路由和负载平衡工作委托给功能区组件,并证明您实际上在gategeeperproject中使用了功能区。
除非您选择不同的负载均衡器,否则您应该选择我的原始答案。
我希望它能有所帮助。
S带表演客户端负载平衡,默认情况下,色带将使用纳菲利克斯尤里卡对于服务发现. 你正在跳过服务发现所以你已经设定了ribbon.eureka.enabled到false. 自从色带现在可以用了尤里卡若要查找服务,必须为meeting服务:
meeting:
ribbon:
listOfServers: localhost:8080
扩展答案
我会更清楚地告诉你。
依赖性org.springframework.cloud:spring-cloud-starter-netflix-zuul,您当前在gatekeeper项目有几个编译依赖项:
com.netflix.zuul:zuul-core
org.springframework.boot:spring-boot-starter-web
org.springframework.boot:spring-boot-starter-actuator
org.springframework.cloud:spring-cloud-netflix-zuul
org.springframework.cloud:spring-cloud-starter
org.springframework.cloud:pring-cloud-starter-netflix-hystrix
org.springframework.cloud:spring-cloud-starter-netflix-ribbon
org.springframework.cloud:spring-cloud-starter-netflix-archaius
如您所见,它构成了聚集在com.netflix.zuul:zuul-core模块(包括用于路由的Eureka,例如Discovery和Ribbon):

当你启动看门人应用程序,默认ZuulProxyAutoConfiguration正在应用配置。它导入功能区配置类:
@Configuration
@Import({ RibbonCommandFactoryConfiguration.RestClientRibbonConfiguration.class,
RibbonCommandFactoryConfiguration.OkHttpRibbonConfiguration.class,
RibbonCommandFactoryConfiguration.HttpClientRibbonConfiguration.class,
HttpClientConfiguration.class })
@ConditionalOnBean(ZuulProxyMarkerConfiguration.Marker.class)
public class ZuulProxyAutoConfiguration extends ZuulServerAutoConfiguration { ... }
HttpClientRibbonConfiguration依次初始化RibbonLoadBalancingHttpClient它负责您看到的错误消息。
那RibbonLoadBalancingHTTPClient(RibbonLoadBalancingHTTPClient)默认使用ZoneAwareLoadBalancer它来自com.netflix.ribbon:ribbon-loadbalancer包裹:
默认情况下,zuul负载平衡使用带式平衡机从缎带。该算法是发现中可用实例的循环,并对可用性区域的恢复性进行成功跟踪。负载均衡器将保留每个区域的统计信息,如果故障率高于可配置的阈值,则会删除一个区域。
如果要使用自己的自定义负载平衡器,可以设置NFLoadBalancerClassName属性,或重写getLoadBalancerClass()方法在DefaultClientChannelManager. 注意你的课程应该扩展DynamicServerListLoadBalancer.
它解释了zuul将路由和负载平衡工作委托给功能区组件,并证明您实际上在看门人项目。
除非您选择不同的负载均衡器,否则您应该使用我的原始答案。
希望能有所帮助。