0

私は、SpringブートとNetflix OSSを使用してマイクロサービスを構築しました。私はセントラル設定サーバー、EurekaとZuulを使用しました。スケーラビリティのために、複数のサービスインスタンスが異なるポートで実行されています。すべてのインスタンスはユーレカに登録されていますが、リクエストは最後に登録されたサーバーにのみ行きます。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

もっと説明できますか?あなたの設定を提供しますか? Eurekaはデフォルトで一意性のためにホスト名のみを使用します。 – spencergibb

+0

オリジナルの投稿に追加されました – Debopam

+0

'$ {random.value} 'の代わりに' $ {server.port} 'を試して、' --server.port = someport'を渡しましたか? – spencergibb

答えて

1

レジストユーレカとアプリケーションを適切に誤消去することはそのトリックを行います。

以下のエントリは、ユーレカとサービスを一意に登録します。

#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}} 
関連する問題