Spring Cloud Eureka: 如何指定Zone

来源:互联网 发布:吴亦凡长相知乎 编辑:程序博客网 时间:2024/06/10 13:16

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

eureka.instance.metadata-map.zone=myzone

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

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

同时指定region:

eureka.client.region=beijing

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

@Override    public String[] getAvailabilityZones(String region) {        String value = this.availabilityZones.get(region);        if (value == null) {            value = DEFAULT_ZONE;        }        return value.split(",");    }

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

3 0
原创粉丝点击