首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zuul不能负载均衡不同端口的同一生产商

Zuul不能负载均衡不同端口的同一生产商
EN

Stack Overflow用户
提问于 2021-02-07 19:17:38
回答 2查看 25关注 0票数 0

我是新来Zuul的。我有两个定义了不同端口的生产者项目。然而,Zuul总是直接指向第一个项目,而不是负载均衡它。我曾经成功过一次,但总是失败,没有任何改变。

Zuul application.properties

代码语言:javascript
复制
server.port=8888
spring.application.name=gateway-service-zuul

zuul.routes.producer.path=/producer/**
zuul.routes.producer.service-id=spring-cloud-producer

生产者one application.properties

代码语言:javascript
复制
spring.application.name=spring-cloud-producer
server.port=9000
eureka.client.serviceUrl.defaultZone = http://localhost:8760/eureka/

生产者2 application.properties

代码语言:javascript
复制
spring.application.name=spring-cloud-producer-2
server.port=9001
eureka.client.serviceUrl.defaultZone = http://localhost:8760/eureka/

如果您将Zuul的application.properties更改为:

代码语言:javascript
复制
zuul.routes.producer.service-id=spring-cloud-producer-2

我可以将流量定向到producer-2。验证producer-2是否可以成功运行。我知道我可以不使用path和service-id直接使用Eureka,但我仍然想弄清楚这一点。

失败的日志-您在DynamicServerListLoadBalancer中看不到producer-2 ...

代码语言:javascript
复制
2021-02-07 18:53:33.943  INFO 14868 --- [nio-8888-exec-1] o.s.c.n.zuul.web.ZuulHandlerMapping      : Mapped URL path [/producer/**] onto handler of type [class org.springframework.cloud.netflix.zuul.web.ZuulController]
2021-02-07 18:53:33.943  INFO 14868 --- [nio-8888-exec-1] o.s.c.n.zuul.web.ZuulHandlerMapping      : Mapped URL path [/spring-cloud-producer/**] onto handler of type [class org.springframework.cloud.netflix.zuul.web.ZuulController]
2021-02-07 18:53:33.943  INFO 14868 --- [nio-8888-exec-1] o.s.c.n.zuul.web.ZuulHandlerMapping      : Mapped URL path [/spring-cloud-producer-2/**] onto handler of type [class org.springframework.cloud.netflix.zuul.web.ZuulController]
2021-02-07 18:53:34.026  INFO 14868 --- [nio-8888-exec-1] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@6a4db6dc: startup date [Sun Feb 07 18:53:34 CST 2021]; parent: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@61d01788
2021-02-07 18:53:34.145  INFO 14868 --- [nio-8888-exec-1] f.a.AutowiredAnnotationBeanPostProcessor : JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
2021-02-07 18:53:34.542  INFO 14868 --- [nio-8888-exec-1] c.netflix.config.ChainedDynamicProperty  : Flipping property: spring-cloud-producer.ribbon.ActiveConnectionsLimit to use NEXT property: niws.loadbalancer.availabilityFilteringRule.activeConnectionsLimit = 2147483647
2021-02-07 18:53:34.603  INFO 14868 --- [nio-8888-exec-1] c.n.u.concurrent.ShutdownEnabledTimer    : Shutdown hook installed for: NFLoadBalancer-PingTimer-spring-cloud-producer
2021-02-07 18:53:34.649  INFO 14868 --- [nio-8888-exec-1] c.netflix.loadbalancer.BaseLoadBalancer  : Client: spring-cloud-producer instantiated a LoadBalancer: DynamicServerListLoadBalancer:{NFLoadBalancer:name=spring-cloud-producer,current list of Servers=[],Load balancer stats=Zone stats: {},Server stats: []}ServerList:null
2021-02-07 18:53:34.664  INFO 14868 --- [nio-8888-exec-1] c.n.l.DynamicServerListLoadBalancer      : Using serverListUpdater PollingServerListUpdater
2021-02-07 18:53:34.712  INFO 14868 --- [nio-8888-exec-1] c.netflix.config.ChainedDynamicProperty  : Flipping property: spring-cloud-producer.ribbon.ActiveConnectionsLimit to use NEXT property: niws.loadbalancer.availabilityFilteringRule.activeConnectionsLimit = 2147483647
2021-02-07 18:53:34.716  INFO 14868 --- [nio-8888-exec-1] c.n.l.DynamicServerListLoadBalancer      : DynamicServerListLoadBalancer for client spring-cloud-producer initialized: DynamicServerListLoadBalancer:{NFLoadBalancer:name=spring-cloud-producer,current list of Servers=[localhost:9000],Load balancer stats=Zone stats: {defaultzone=[Zone:defaultzone;  Instance count:1;   Active connections count: 0;    Circuit breaker tripped count: 0;   Active connections per server: 0.0;]
},Server stats: [[Server:localhost:9000;    Zone:defaultZone;   Total Requests:0;   Successive connection failure:0;    Total blackout seconds:0;   Last connection made:Thu Jan 01 08:00:00 CST 1970;  First connection made: Thu Jan 01 08:00:00 CST 1970;    Active Connections:0;   total failure count in last (1000) msecs:0; average resp time:0.0;  90 percentile resp time:0.0;    95 percentile resp time:0.0;    min resp time:0.0;  max resp time:0.0;  stddev resp time:0.0]
]}ServerList:org.springframework.cloud.netflix.ribbon.eureka.DomainExtractingServerList@3ec2c916
2021-02-07 18:53:35.673  INFO 14868 --- [erListUpdater-0] c.netflix.config.ChainedDynamicProperty  : Flipping property: spring-cloud-producer.ribbon.ActiveConnectionsLimit to use NEXT property: niws.loadbalancer.availabilityFilteringRule.activeConnectionsLimit = 2147483647
2021-02-07 18:57:44.394  INFO 14868 --- [trap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver      : Resolving eureka endpoints via configuration

完整的代码可以在这里找到。code

非常感谢您的评论。

EN

回答 2

Stack Overflow用户

发布于 2021-02-07 20:14:33

或者,我们可以使用ribbon并将url列表添加到其中:

zuul中的application.properties:

代码语言:javascript
复制
server.port=8888
spring.application.name=gateway-service-zuul

zuul.routes.producer.path=/producer/**
zuul.routes.producer.service-id=producer-service

        
producer-service.ribbon.NIWSServerListClassName=com.netflix.loadbalancer.ConfigurationBasedServerList
producer-service.ribbon.listOfServers=localhost:9000,localhost:9001
producer-service.ribbon.ConnectTimeout=1000
producer-service.ribbon.ReadTimeout=3000
producer-service.ribbon.MaxTotalHttpConnections=500
producer-service.ribbon.MaxConnectionsPerHost=100

eureka.client.serviceUrl.defaultZone = http://localhost:8760/eureka/
ribbon.eureka.enabled=false
票数 0
EN

Stack Overflow用户

发布于 2021-02-08 17:36:44

所有实例应该具有相同的serviceId/ application.name,只是端口不同。然后,您的请求将被负载平衡到请求中指定的serviceId可用的服务实例之一。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66087264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档