分享

Spring Cloud Eureka: 如何指定Zone

 邵飞翔 2017-10-17

有坑。
先说结论:如果想给当前服务指定属于哪个zone, 使用

eureka.instance.metadata-map.zone=myzone
  • 1

属性是无效的,而应该使用:

eureka.client.availabilityZones.beijing=myzone # beijing是region
  • 1

同时指定region:

eureka.client.region=beijing
  • 1

至于原因,可以在EurekaClientConfigBean的源码中找到:

@Override
    public String[] getAvailabilityZones(String region) {
        String value = this.availabilityZones.get(region);
        if (value == null) {
            value = DEFAULT_ZONE;
        }
        return value.split(",");
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

也就是说在判断当前服务属于哪个zone时,先从availabilityZone这个Map中查找,查找用的key是region名。如果找不到,就使用默认值,即我们熟知的defaultZone

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多