2017-09-13 12 views
1

私はユーレカクライアントのインスタンスIDは一意である必要があると我々は同じユーレカクライアントの複数のインスタンスを実行したいとき、我々は、このプロパティを追加することをお読みください。春のユーレカのinstanceidは何ですか?

eureka.instance.instance-id==${spring.cloud.client.hostname}:${spring.application.name}:${spring.application.instance_id:${random.value}} 

インスタンスIDの意義と方法は何ですか上記の行は重要ですか?

答えて

2

複数のサービスの1つのインスタンスを一意に識別するために使用されます。同じバネ・ブート・アプリケーションの2倍のインスタンスをデプロイした場合は、それらのインスタンスを識別するためにインスタンスIDが使用されます。

ドキュメントには、PCFとAWSインスタンスIDの使用例がいくつか追加されています。

https://cloud.spring.io/spring-cloud-netflix/multi/multi__service_discovery_eureka_clients.html

上記のプロパティは、単純に他のプロパティをとり、それらを組み合わせたものです。上記の唯一の問題は、環境内にspring.application_instance_idが見つからない場合は、代わりにrandom.valueを使用することです。あなたは好きなようにオーバーライドできますが、一意でなければなりません。

+0

デフォルトのインスタンスIDはhost:portです。だから、私のインスタンスが異なるポートで動作しているため、一意のインスタンスIDを持つ場合、なぜこのようなインスタンスIDを編集する必要がありますか? – codingsplash

+0

アプリケーションが異なるポートで実行され、インスタンスID *が一意であることを保証できるかどうかは必要ありません。 PCFのようなものにデプロイすると、各インスタンスにポートが設定されるため、インスタンスIDが衝突するため、一意ではありません。 –

3

AユーレカクライアントはアプリIDインスタンスIDを有しています。 T 彼 アプリケーションIDはアプリケーションの名前ですが、インスタンスIDはクライアントのインスタンスに関連付けられた一意のIDです

これは、同じアプリケーションの異なるクライアント・インスタンス間の区別を作るためにユーレカサーバーに役立ちます。あなたの例では、次に示す行はフォーマットを有するアプリケーションのための固有のインスタンスIDを設定します:私の例では<client host name>:<client app name>:<some random number>

eureka.instance.instance-id==${spring.cloud.client.hostname}:${spring.application.name}:${spring.application.instance_id:${random.value}} 

、以下に示す、インスタンスIDは、形式は - <host name>:<app id>:<port>を。 以下に示すユーレカREST操作では、アプリIDがAUTHOR、インスタンスIDが10.16.6.76:author:8766のユーレカクライアントのステータスがOUT_OF_SERVICEに変更されます。

localhost:8761/eureka/apps/AUTHOR/10.16.6.76:author:8766/status?value=OUT_OF_SERVICE 

気づいた場合、アプリケーションIDとインスタンスIDの両方を入力すると、Eureka Serverはクライアントを一意に識別できます。

enter image description here

関連する問題