0

我有一個使用Spring Boot和Netflix OSS構建的微服務。我使用過中央配置服務器,Eureka和Zuul。由於可伸縮性,多個服務實例在不同的端口上運行。所有實例都在Eureka中註冊,但請求只會持續註冊服務器。使用Spring雲Netflix負載均衡微服務OSS

如何負載均衡服務。我應該在Zuul中使用功能區來平衡負載嗎?請讓我知道如何在多個實例上運行的相同服務上實現負載平衡。

如果需要更改代碼,請發佈代碼片段。

應用配置

spring.application.name=book-service 
server.port=0 

eureka.client.region = default 
eureka.client.registryFetchIntervalSeconds = 5 
eureka.client.serviceUrl.defaultZone=http://discUser:[email protected]:10082/eureka/ 

#eureka.instance.metadataMap.instanceId=${spring.application.name}:${spring.application.instance_id:${random.value}} 
eureka.instance.instanceId=${spring.application.name}:${spring.application.instance_id:${random.value}} 
eureka.instance.leaseRenewalIntervalInSeconds=5 
eureka.instance.leaseExpirationDurationInSeconds=5 

尤里卡配置

spring.application.name=discovery 
server.port=10082 

eureka.instance.hostname=localhost 

eureka.client.serviceUrl.defaultZone=http://discUser:[email protected]:10082/eureka/ 
eureka.client.register-with-eureka=false 
eureka.client.fetch-registry=false 

spring.session.store-type=hash-map 

ZUUL配置

spring.application.name=gateway 
server.port=10080 

eureka.client.region = default 
eureka.client.registryFetchIntervalSeconds = 5 

management.security.sessions=always 

zuul.routes.book-service.path=/book-service/** 
zuul.routes.book-service.sensitive-headers=Set-Cookie,Authorization 
hystrix.command.book-service.execution.isolation.thread.timeoutInMilliseconds=600000 

#zuul.routes.rating-service.path=/rating-service/** 
#zuul.routes.rating-service.sensitive-headers=Set-Cookie,Authorization 
#hystrix.command.rating-service.execution.isolation.thread.timeoutInMilliseconds=600000 

zuul.routes.discovery.path=/discovery/** 
zuul.routes.discovery.sensitive-headers=Set-Cookie,Authorization 
zuul.routes.discovery.url=http://localhost:8082 
hystrix.command.discovery.execution.isolation.thread.timeoutInMilliseconds=600000 

logging.level.org.springframework.web.=debug 
logging.level.org.springframework.security=debug 
logging.level.org.springframework.cloud.netflix.zuul=debug 

spring.session.store-type=hash-map 
+0

你能解釋一下嗎?提供你的配置?尤里卡在默認情況下僅使用主機名來表示唯一性。 – spencergibb

+0

已添加到原始帖子 – Debopam

+0

您是否試過'$ {server.port}'而不是'$ {random.value}'並傳遞了'--server.port = someport'? – spencergibb

回答

1

REGIST與尤里卡正確地適用應用程序將做到這一點。

以下條目將獨家向Eureka註冊服務。

#eureka.instance.metadataMap.instanceId=${spring.application.name}:${spring.application.instance_id:${random.value}} 
eureka.instance.instanceId=${spring.application.name}:${spring.application.instance_id:${random.value}}