【问题标题】: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?

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

【问题讨论】:

    标签: spring-boot spring-cloud netflix-eureka


    【解决方案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 metadataMap = new HashMap();另外,关于动态元数据的有用博客https://blog.codecentric.de/en/2018/01/spring-cloud-service-discovery-dynamic-metadata/
    猜你喜欢
    • 1970-01-01
    • 2012-10-06
    • 2010-10-07
    • 1970-01-01
    • 2011-05-20
    • 2015-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多