Apollo添加自定义的环境

本文详细介绍了如何在Apollo配置管理系统中添加自定义环境,包括修改源代码以加入新环境枚举、更新环境转换逻辑、配置环境元服务器地址等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果需要添加的环境不是Apollo预先定义的环境,请参照如下步骤操作:

假设需要添加的环境名称叫sit
修改com.ctrip.framework.apollo.core.enums.Env类,在其中加入SIT枚举:

public enum Env{
  LOCAL, DEV, SIT, FWS, FAT, UAT, LPT, PRO, TOOLS, UNKNOWN;
  ...
}

修改com.ctrip.framework.apollo.core.enums.EnvUtils类,在其中加入SIT枚举的转换逻辑:

public final class EnvUtils {
  
  public static Env transformEnv(String envName) {
    if (StringUtils.isBlank(envName)) {
      return Env.UNKNOWN;
    }
    switch (envName.trim().toUpperCase()) {
      ...
      case "SIT":
        return Env.SIT;
      ...
      default:
        return Env.UNKNOWN;
    }
  }
}

修改apollo-env.properties,增加sit.meta占位符:

local.meta=http://127.0.0.1:18080
dev.meta=http://127.0.0.1:18080
sit.meta=http://127.0.0.1:18081
uat.meta=http://127.0.0.1:18082

修改com.ctrip.framework.apollo.core.internals.LegacyMetaServerProvider类,增加读取SIT环境的meta server地址逻辑:
public class MetaDomainConsts {

...
domains.put(Env.SIT,
    env.getProperty("sit_meta", prop.getProperty("sit.meta")));
...

}

到此结束,然后就可以编辑代码,生成可执行jar包,放到服务器上运行,具体配置请参考:使用apollo管理多个环境的服务配置

### 如何在 Apollo 配置管理中心环境 要在 Apollo 配置管理中心增一个环境,需要完成以下几个方面的配置: #### 1. 数据库准备 将 `apolloconfigdb` 的数据库分别导入到目标服务器(如 CentOS02 和 CentOS03),确保每个环境都有独立的数据库实例[^1]。 #### 2. 修改 Apollo 环境属性文件 编辑 `apollo-adminservice` 解压目录下 `/config/apollo-env.properties` 文件,添加环境变量。例如,如果要增名为 `test` 的环境,则可以在该文件中入以下内容: ```properties env=test meta.server.address=http://your-test-meta-server-address ``` 此操作用于指定环境对应的元数据服务地址[^2]。 #### 3. 自定义 Apollo 环境 通过修改 `apollo-common/src/main/java/com/ctrip/framework/apollo/core/enums.Env.java` 文件来扩展支持的环境名称。假设了一个测试环境叫作 `TEST`,则需在此枚举类里追一项: ```java public enum Env { FAT("FAT"), UAT("UAT"), PRO("PRO"), TEST("TEST"); // 增此项 private final String value; Env(String value){ this.value = value; } public String getValue(){ return value; } } ``` 上述代码片段展示了如何向已有环境中补充一个的逻辑分支——即代表测试用途的 `TEST` 值[^3]。 #### 4. 调整项目结构以适应多环境部署需求 按照官方文档指引,把解压缩后的 `apollo-configservice` 及其关联的服务组件拷贝至对应子目录内形成清晰分层布局;比如可以创建类似于这样的路径模式:`software/apollo/{dev,test,pro}` 来区分不同阶段的应用版本存储位置[^4]。 最后一步就是重编译整个工程并启动相关微服务节点,在这之后便能够正常访问所设定好的全业务场景下的参数管理界面啦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值