eureka.instance.instance-id 和 eureka.instance.metadataMap.instanceId 有啥区别?
Posted
技术标签:
【中文标题】eureka.instance.instance-id 和 eureka.instance.metadataMap.instanceId 有啥区别?【英文标题】:What is the difference between eureka.instance.instance-id and eureka.instance.metadataMap.instanceId?eureka.instance.instance-id 和 eureka.instance.metadataMap.instanceId 有什么区别? 【发布时间】:2020-02-03 20:46:26 【问题描述】:eureka.instance.instance-id和eureka.instance.metadataMap.instanceId有什么区别?我在同一主机(本地主机)上运行了 2 个相同服务的实例并拥有一个唯一的 instanceId,我尝试了 eureka.instance.instance-id 和 eureka.instance.metadataMap.instanceId。这两个属性都运行良好,并且服务实例已成功注册到 eureka 服务器。
我在下面的帖子中找到了两个选项
how to create multiple instances of eureka services registered into eureka service registry?
那么,它们之间有什么区别,我应该在哪里使用这些属性?
【问题讨论】:
【参考方案1】:没有这样的。我们可以同时使用:)。
当 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 设置它,它会返回相同的值,否则它会尝试从元数据(使用 eureka.instance.metadataMap.instanceId 设置)中查找 instanceId。
您可以查看 EurekaInstanceConfigBean 类了解更多详情。
【讨论】:
这很有用。只是为了添加到我们应该使用 eureka.instance.metadataMap.* 我在 EurekaInstanceConfigBean 类中找到的 /** * 获取与此实例关联的元数据名称/值对。此信息 * 被发送到 eureka 服务器,可供其他实例使用。 */ 私有 Map以上是关于eureka.instance.instance-id 和 eureka.instance.metadataMap.instanceId 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章