一般开发都分成dev, test, staging prod等环境。如下面介绍两种方法在spring cloud中配置多环境。

下面为配置注册中心地址

eureka:
  client:
    serviceUrl:
      defaultZone: http://10.0.0.1/eureka/

当然你可以在启动时参数加 –eureka.client.serviceUrl.defaultZone=http://10.0.0.1/eureka。

下面介绍其他两种方法:

1、写在bootstrap.yml或者application.yml中如下图,然后启动参数加-Denv=xxx。

defaultZone:
  dev: http://10.0.0.1:1111/eureka/
  test: http://192.168.50.209:1111/eureka/
  staging: http://10.0.66.226:1111/eureka/
  prod: http://10.0.5.89:1111/eureka/,http://10.0.15.81:1111/eureka/

eureka:
  client:
    serviceUrl:
      defaultZone: ${defaultZone.${env}}

2、配置在启动类中,启动参数如上-Denv=dev;

private final static Map<String, String> HOST_MAP = Maps.newHashMapWithExpectedSize(4);

static {
    HOST_MAP.put("dev", "http://10.0.0.1:1111/eureka/");
    HOST_MAP.put("test", "http://192.168.50.209:1111/eureka/");
    HOST_MAP.put("staging", "http://10.0.66.226:1111/eureka/");
    HOST_MAP.put("prod", "http://10.0.5.89:1111/eureka/,http://10.0.15.81:1111/eureka/");
}

public static void main(String[] args) {
    String env = System.getProperty("env");
    if (StringUtils.isEmpty(System.getProperty("env"))) {
        System.setProperty("env", "dev");
        env = "dev";
    }

    final List envLogList = Lists.newArrayList("prod", "staging");
    System.setProperty("host.name", HOST_MAP.get(env));

发表评论

电子邮件地址不会被公开。 必填项已用*标注