搭建Apollo多种环境

一、前言

推荐文章:apollo客户端实现不重启项目动态获取配置

既然大家看到这里多少对Apollo一些了解,关于Apollo是什么,功能又那些我就不多说了,对于我们的一般项目,都会有多种开发环境,比如开发环境(dev),测试环境(uat),生产环境(pro),每一种项目的开发环境项目配置又有所不同,所以,需要多种配置,在各个环境下一不同的配置运行!

二、搭建准备

1、三台虚拟机(如果你在一台上搭建也是可以的,我这里为了更加的清晰)

  • 192.168.25.5 搭建portal (管理界面)
  • 192.168.25.6 搭建config/admin(dev环境)
  • 192.168.25.7 搭建config/admin(pro环境)
    即portal是Apollo的管理页面,只需要搭建一个就行了,如果你还有其它环境则再配置一对config/admin即可,如下官网图片
    搭建Apollo多种环境_第1张图片
    2、 下载源码
    因为Apollo源码是开源的,我们下载下来,根据我们的需求修该配置,打包即可!

三、修改配置

1、创建数据库
数据库的脚本Apollo已近放在源码里面了,如下图
搭建Apollo多种环境_第2张图片
192.168.25.5(protal)服务器上数据库执行portaldb分别在192.168.25.6(dev),192.168.25.7(pro)数据库上执行configdb,如下图
搭建Apollo多种环境_第3张图片
2、修改脚本配置文件
搭建Apollo多种环境_第4张图片
这里的数据库地址localhost不用更改 ,因为等一下我们执行脚本会将打包好的脚本放在对应的服务器中,那么数据库就是在本地了,至于portal如何连接到dev与pro的服务器,就需要设置下面的 (***_meta)了,因此只需要更改dev_meta与pro_meta的服务起地址!
3、执行脚本
直接执行build.bat即可,如图
搭建Apollo多种环境_第5张图片

四、上传文件

执行完上面的build脚本之后会在相应位置生成指定的压缩包

  • apollo\apollo-portal\target生成apollo-portal-1.5.0-SNAPSHOT-github.zip
    搭建Apollo多种环境_第6张图片
  • apollo\apollo-configservice\target生成apollo-configservice-1.5.0-SNAPSHOT-github.zip(图省略)
  • apollo\apollo-adminservice\target生成apollo-adminservice-1.5.0-SNAPSHOT-github.zip(图省略)

将apollo-portal-1.5.0-SNAPSHOT-github.zip上传到192.168.25.5(protal)的服务器上解压,查看配置并修改,修改config下的apollo-env.properties如下
搭建Apollo多种环境_第7张图片
查看数据库配置
搭建Apollo多种环境_第8张图片

  • 将apollo-configservice-1.5.0-SNAPSHOT-github.zip和apollo-adminservice-1.5.0-SNAPSHOT-github.zip上传到192.168.25.6(dev)的服务器上解压,并查看配置信息
    adminservice解压查看信息
    搭建Apollo多种环境_第9张图片
    configservice解压查看信息
    搭建Apollo多种环境_第10张图片
  • 将apollo-configservice-1.5.0-SNAPSHOT-github.zip和apollo-adminservice-1.5.0-SNAPSHOT-github.zip上传到192.168.25.7 (pro)的服务器上解压,并查看配置信息(如上图)

五、修改数据库

打开192.168.25.5(protal)的数据库中的ApolloPortalDB,将serverConfig表中的dev换成dev,pro(因为现在我们有两种环境),如下图
搭建Apollo多种环境_第11张图片

六、启动

启动之前,需要说明一点的是,Apollo会在opt/logs文件中写入日志,所以你需要保证当前启动的用户拥有该权限!

启动顺序如下(启动脚本在对应文件的script中
192.168.25.6(dev)

  • configservice
  • adminservice

192.168.25.7(pro)

  • configservice
  • adminservice

192.168.25.5(portal)

启动可能会慢一点

七、测试

打开chrome,访问192.168.25.5:8070(protal)管理页面,创建应用,你就会发现有两种环境了!
账号:apollo
密码:admin

搭建Apollo多种环境_第12张图片
创建测试
搭建Apollo多种环境_第13张图片
pro环境中
在这里插入图片描述
dev环境中
在这里插入图片描述
如果你还需要其它环境,再继续配置一组(adminserver和configserver即可)

八、springboot读取不同的配置

在springboot的启动类上加上开启Apollo的配置
搭建Apollo多种环境_第14张图片
在application.yml中指定appid
搭建Apollo多种环境_第15张图片

  • apollo.configService 配置的meta-server(元数据)地址
  • env 会读取appid的配置中dev环境的配置
-Denv=DEV -Dapollo.configService=http://192.168.25.5:8080

如下
搭建Apollo多种环境_第16张图片
这个配置就说明了,我要到192.168.25.5:8080获取元数据信息,读取appid为gxm的项目的dev配置

  • 官方也提供了一种默认的方式,我们可以在项目的resource目录下建立一个名为apollo-env.properties的文件,它效果和上面在运行时指定VM option的效果一样,只是级别比它低,就是如果你设置了VM option就以这个为准,不设置就以apollo-env.properties配置文件为准
    搭建Apollo多种环境_第17张图片

但是这里还是需要注意一点,如果你有多个环境,无论哪种情况你都得设置-Denv=DEV,指明用那个环境的配置

你可能感兴趣的:(Apollo)