如何设置 Spring Cloud Eureka 应用的区域

How to set a Spring Cloud Eureka app's zone

这可能是个愚蠢的问题 ;-)。

在Spring的功能区代码(ZonePreferenceServerListFilter)中,我看到:

    if (ConfigurationManager.getDeploymentContext() != null) {
        this.zone = ConfigurationManager.getDeploymentContext().getValue(
                ContextKey.zone);
    }

区域名称默认为'defaultZone'。

How/where 我可以为我的应用程序设置该值吗?

我尝试在 application.yml 中设置 eureka.instance.metadataMap.zone,但没有成功。

有什么建议吗?

谢谢。

亨利

我相信 eureka.client.availabilityZones 是一个列表。然后就可以设置eureka.client.serviceUrl.<yourzone>=<eurekaurlforthatzone.

如果您有多个区域,您可以在此处找到更多详细信息:https://github.com/spring-cloud/spring-cloud-netflix/issues/991

使用此处提供的增强功能,您可以 将 Eureka-Ribbon-Client 的区域设置为 eureka.instance.metadataMap.zone。如果您使用早期版本的 Spring Cloud,您仍然可以在 application.yaml.

中使用 属性 "@zone"

使用 availabilityZones 设置区域的方法仅限于只有一个区域的设置,因为第一个区域将始终被使用。