什么是春天尤里卡的instanceid?

时间:2017-09-13 11:09:54

标签: spring spring-cloud netflix-eureka

我读到Eureka客户端的实例ID必须是唯一的,当我们希望运行同一个Eureka客户端的多个实例时,我们就添加了这个属性:

N

实例Id的意义是什么?上述内容如何重要?

2 个答案:

答案 0 :(得分:7)

Eureka客户端具有应用ID 实例ID 。 Ť的他 app ID是应用程序的名称,而实例ID是与客户端实例关联的唯一ID

这有助于 Eureka Server 在同一应用程序的不同客户端实例之间进行区分。在您的示例中,下面显示的行为您的应用程序设置了一个唯一的实例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>。 下面显示的Eureka REST操作将更改eureka客户端的状态,其应用ID为AUTHOR,实例ID为10.16.6.76:author:8766OUT_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

答案 1 :(得分:2)

它用于唯一地标识多个服务的单个实例。如果您部署了同一个Spring引导应用程序的2x实例,则使用实例ID来区分它们。

可以在文档中找到PCF和AWS w / Instance ID的一些其他用例。

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

上述属性只需要其他属性,将它们组合在一起。上面唯一的问题是如果在环境中找不到spring.application_instance_id,它将使用random.value代替。您可以根据自己的喜好进行覆盖,但它应该是唯一的。