在初学Apollo的时候,一直有一个问题没想通,就是Apollo多个环境是怎么创建和切换的。刚突然想通了,先记录一下,后续待验证测试。
-
创建多个环境
看官方文档时,Apollo有一个很便利的特点,就是portal可以管理多个环境,如env=dev(fat,uat,pro…),所以第一,我们需要有这多个环境。根据官方文档,每一个环境需要独立部署一套Config Service、Admin Service和ApolloConfigDB,所以第一步需要在不同的服务器安装这些环境。(portal和ApolloPortalDB可以共用)。 -
将多个环境配置到portal中
向portal添加环境其实很简单,只需要修改portal的配置文件就好(apollo-env.properties这里有多种方式,可以去查看官网文档,我这里只写集群部署的配置文档)。
文档基本内容如下:
local.meta=http://localhost:8080
dev.meta=http://localhost:8080
fat.meta=http://fill-in-fat-meta-server:8080
uat.meta=http://fill-in-uat-meta-server:8080
lpt.meta=${lpt_meta}
pro.meta=http://fill-in-pro-meta-server:8080
这里指定了不同环境的meta server(即eureka注册中心,默认为configsevice的地址),根据你的具体情况作出调整。
- 客户端设置
其实做完上面两步,多环境已经配置完成了,你就可以在你的portal里看到不同的环境了。那客户端该调用哪个环境呢。可通过设置配置文件的方式:修改/opt/settings/server.properties(Mac/Linux)或C:\opt\settings\server.properties(Windows)(没有该文件可自己创建)。
文件中加入:env=(你所要访问的环境)
如:env=DEV( 大小写不敏感)
通过上面三步,就可以实现Apollo的多环境设置了。需要注意的是,Apollo是会自动查找默认配置的。比如说你在客户端里设置了env=pro,但你并没有pro这个环境,那么他会自动去查找你存在的环境配置,若你只有一个dev环境,那么你会发现,不管你怎么配置,你总是会获取到dev的配置信息。
以上是我查看官方文档,想到的方式,暂时还未曾验证。先做记录后续验证吧。
来源:https://blog.csdn.net/OUCFSB/article/details/102778011