美文网首页
Apollo多环境配置

Apollo多环境配置

作者: 烂融小菜花 | 来源:发表于2019-10-08 10:08 被阅读0次

Apollo预先定义的环境有四种:(DEV, FAT, UAT, PRO)。

  • DEV

    • 开发环境
  • FAT

    • 测试环境,相当于alpha环境(功能测试)
  • UAT

    • 集成环境,相当于beta环境(回归测试)
  • PRO

    • 生产环境

分布式多环境部署图:

lyliyongblue-apollo-deployment.png
  • Portal部署在生产环境的机房,通过它来直接管理FAT、UAT、PRO等环境的配置

  • Config Service、Admin Service和apolloconfigdb在每个环境都单独部署

  • 应用需要配置指定的环境,默认为dev。

一、添加Apollo预先定义好的环境

1.新增一套Config Service、Admin Service和ApolloConfigDB

一套Portal可以管理多个环境,但是每个环境都需要独立部署一套Config Service、Admin Service和ApolloConfigDB。

所以新增环境时,需要重新部署一套Config Service、Admin Service和ApolloConfigDB。

另外如果是为已经运行了一段时间的Apollo配置中心增加环境,还对新的环境做初始化(把旧的Config Service和Admin Service数据拷贝到新的环境)。

2.修改ApolloProtalDB.serverconfig中的apollo.portal.envs - 可支持的环境列表

ps:也可以启动Apollo后,在管理界面更改系统参数-apollo.portal.envs

默认值是dev,如果portal需要管理多个环境的话,以逗号分隔即可(大小写不敏感),如:

DEV,FAT,UAT,PRO
3.修改apollo-portal/config/apollo-env.properties

apollo-portal安装包下的apollo-env.properties文件中修改环境配置:

把添加的环境配置相对应的config-server地址

local.meta=http://localhost:8080
dev.meta=http://localhost:8080
fat.meta=
uat.meta=
lpt.meta=${lpt_meta}
pro.meta=http://localhost:8081
4.修改项目中的apollo-meta和evn配置:
  • 本地开发环境下,通过server.properties配置文件配置apollo.metaevn环境

  • 生产环境或者测试环境,通过编译时传参或者启动应用时传参的方式进行配置,具体如下:

    maven:

    mvn -clean install -Dapollo.meta=http://config-service-url -Deureka-url=http://192.168.10.126:8001/eureka/

    java System property:

    java -jar mainWeb.jar --apollo.meta=http://config-service-url --app.id=YOUR-APP-ID

    --eureka-url=http://192.168.10.126:8001/eureka/

二、 添加自定义环境

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

1.假设需要添加的环境名称叫beta
2.修改源码中的com.ctrip.framework.apollo.core.enums.Env类,在其中加入BETA枚举:
public enum Env{
  LOCAL, DEV, BETA, FWS, FAT, UAT, LPT, PRO, TOOLS, UNKNOWN;
  ...
}
3.修改源码中的com.ctrip.framework.apollo.core.enums.EnvUtils类,在其中加入BETA枚举的转换逻辑:
public final class EnvUtils {
  
  public static Env transformEnv(String envName) {
    if (StringUtils.isBlank(envName)) {
      return Env.UNKNOWN;
    }
    switch (envName.trim().toUpperCase()) {
      ...
      case "BETA":
        return Env.BETA;
      ...
      default:
        return Env.UNKNOWN;
    }
  }
}
4.修改源码中的apollo-env.properties,增加beta.meta占位符:
local.meta=http://localhost:8080
dev.meta=${dev_meta}
fat.meta=${fat_meta}
beta.meta=${beta_meta}
uat.meta=${uat_meta}
lpt.meta=${lpt_meta}
pro.meta=${pro_meta}
5.修改源码中的com.ctrip.framework.apollo.core.internals.LegacyMetaServerProvider类,增加读取BETA环境的meta server地址逻辑:
public class LegacyMetaServerProvider {
    ...
    domains.put(Env.BETA, getMetaServerAddress(prop, "beta_meta", "beta.meta"));
    ...
}
6.新增一套Config Service、Admin Service和ApolloConfigDB

与添加Apollo预先定义好的环境的做法一致

7.修改ApolloProtalDB.serverconfig中的apollo.portal.envs - 可支持的环境列表

与添加Apollo预先定义好的环境的做法一致

8.修改项目中的apollo-meta和evn配置

与添加Apollo预先定义好的环境的做法一致

相关文章

  • Apollo管理多环境下的配置和踩坑实践

    目录 1、源码构建Apollo配置中心 2、Apollo管理多环境的配置 3、Apollo从零到一过程中的踩坑记录...

  • Apollo多环境配置

    Apollo预先定义的环境有四种:(DEV, FAT, UAT, PRO)。 DEV开发环境 FAT测试环境,相当...

  • Linux部署Apollo多环境配置

    1、前提:本文只支持默认的开发环境(DEV)、测试环境(FAT)、预发布环境(UAT)、生产环境(PRO)四种环境...

  • [BUG排查]Apollo配置中心注入参数不匹配

    问题描述 在本地使用Apollo配置中心进行开发,先连接了dev环境的Apollo进行联调,后面更换了test环境...

  • 配置中心

    Apollo简介 Apllo为携程开发的框架,用作配置中心,本系统基于apollo-1.4.0版本 所需环境 jd...

  • Apollo配置中心在项目中应用

    Apollo Apollo(Github主页)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境、不同集...

  • Apollo的学习

    关于apollo Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的...

  • Apollo源码解析-架构篇

    1、apollo简介 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集...

  • Apollo配置中心

    Apollo介绍 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群...

  • spring cloud 集成 apollo(单机版apollo

    一、什么是apollo? Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不...

网友评论

      本文标题:Apollo多环境配置

      本文链接:https://www.haomeiwen.com/subject/gzuwpctx.html