Spring boot eureka.instance.instance-id和eureka.instance.metadataMap.instanceId之间有什么区别?

Spring boot eureka.instance.instance-id和eureka.instance.metadataMap.instanceId之间有什么区别?,spring-boot,spring-cloud,netflix-eureka,Spring Boot,Spring Cloud,Netflix Eureka,eureka.instance.instance-id和eureka.instance.metadataMap.instanceId之间有什么区别?我在同一主机(localhost)上运行了两个相同服务的实例,为了获得唯一的instanceId,我尝试了eureka.instance.instance-id和eureka.instance.metadataMap.instanceId。这两个属性工作正常,服务实例已成功注册到eureka服务器 我在下面的帖子中找到了两个选项 那么,它们之间的区

eureka.instance.instance-id和eureka.instance.metadataMap.instanceId之间有什么区别?我在同一主机(localhost)上运行了两个相同服务的实例,为了获得唯一的instanceId,我尝试了eureka.instance.instance-id和eureka.instance.metadataMap.instanceId。这两个属性工作正常,服务实例已成功注册到eureka服务器

我在下面的帖子中找到了两个选项


那么,它们之间的区别是什么?我应该在哪里使用这些属性

没有这样的。我们可以同时使用:)

当eureka服务器在此处注册客户端时请求instanceId时,它得到的是-

@Override
public String getInstanceId() {
    if (this.instanceId == null && this.metadataMap != null) {
        return this.metadataMap.get("instanceId");
    }
    return this.instanceId;
}
因此,如果使用eureka.instance.instance-id设置它,它将返回相同的结果,否则它将尝试从元数据中查找instanceId(使用-eureka.instance.metadataMap.instanceId设置)


您可以查看EurekaInstanceConfigBean类以了解更多详细信息。

这很有用。只是为了添加到我们应该使用eureka.instance.metadataMap.*我在EurekaInstanceConfigBean类中找到/***获取与此实例关联的元数据名称/值对。此信息*发送到eureka服务器,可供其他实例使用。*/private-Map-metadataMap=new-HashMap();此外,还有一个关于动态元数据的有用博客