apollo配置中心新增自定义环境

Thu Feb 28, 2019

200 Words|Read in about 1 Min
Tags: Devops  

Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。

默认阿波罗环境设定了

LOCAL, DEV, FWS, FAT, UAT, LPT, PRO, TOOLS, UNKNOWN;  

这样的环境命名空间。 增加SKLINUX环境示范:
1.假设增加SKLINUX 在com.ctrip.framework.apollo.core.enums.Env类中有定义。
比如增加SKLINUX环境

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

文件路径

apollo/apollo-core/src/main/java/com/ctrip/framework/apollo/core/enums/Env.java  

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

case "SKLINUX":
        return Env.SKLINUX;

文件路径: apollo/apollo-core/src/main/java/com/ctrip/framework/apollo/core/enums/EnvUtils.java 3.修改apollo-env.properties,增加beta.meta占位符:

local.meta=http://localhost:8080
dev.meta=${dev_meta}
fat.meta=${fat_meta}
sklinux.meta=${sklinux_meta}
uat.meta=${uat_meta}
lpt.meta=${lpt_meta}
pro.meta=${pro_meta}

文件路径:

apollo/apollo-portal/src/main/resources/apollo-env.properties

4.修改com.ctrip.framework.apollo.core.internals.LegacyMetaServerProvider类,增加读取SKLINUX环境的meta server地址逻辑: 增加

env.getProperty("sklinux_meta", prop.getProperty("sklinux.meta")));

未增加前:

 domains.put(Env.LOCAL, getMetaServerAddress(prop, "local_meta", "local.meta"));
 domains.put(Env.DEV, getMetaServerAddress(prop, "dev_meta", "dev.meta"));
 domains.put(Env.FAT, getMetaServerAddress(prop, "fat_meta", "fat.meta"));
 domains.put(Env.UAT, getMetaServerAddress(prop, "uat_meta", "uat.meta"));
 domains.put(Env.LPT, getMetaServerAddress(prop, "lpt_meta", "lpt.meta"));
 domains.put(Env.PRO, getMetaServerAddress(prop, "pro_meta", "pro.meta"));

文件路径:

./apollo/apollo-core/src/main/java/com/ctrip/framework/apollo/core/internals/LegacyMetaServerProvider.java
cd apollo/scripts/ && ./build.sh 
即可完成
[INFO] Reactor Summary for Apollo 1.4.0-SNAPSHOT:
[INFO]
[INFO] Apollo ............................................. SUCCESS [ 0.667 s]
[INFO] Apollo Core ........................................ SUCCESS [ 3.964 s]
[INFO] Apollo Common ...................................... SUCCESS [ 1.377 s]
[INFO] Apollo Open Api .................................... SUCCESS [ 0.875 s]
[INFO] Apollo Portal ...................................... SUCCESS [ 6.668 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 14.254 s
[INFO] Finished at: 2019-05-06T10:50:55+08:00
[INFO] ------------------------------------------------------------------------
==== building portal finished ====

5.protaldb增加SKLINUX环境配置。portaldb.serverconfig 表中的apollo.portal.envs字段 dev,uat,fat,pro,sklinux

6.为apollo-portal添加新增环境对应的meta server地址。apollo-env.properties中增加:

dev.meta=http://x.x.x.x:8080

7.准备sklinux环境的adminservice和configservice 以及db,然后启动。
8.重启portal服务就新增成功了。

See Also

Thu Feb 28, 2019

200 Words|Read in about 1 Min
Tags: Devops