Apollo多环境切换
程序员文章站
2022-05-08 12:51:16
...
在初学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的配置信息。
以上是我查看官方文档,想到的方式,暂时还未曾验证。先做记录后续验证吧。
后续:上述步骤,经验证是可行的。但有几点需要注意下:
- portal中添加环境时,需要做如下操作:
1) 在不同的环境,部署并启动adminservice和configservice
2) 在portalservice的apollo-env.properties配置文件中,修改不同环境的meta地址。
local.meta=http://localhost:8080
**dev.meta=http://localhost:8080
fat.meta=http://10.18.226.74:8080**
uat.meta=http://fill-in-uat-meta-server:8080
lpt.meta=${lpt_meta}
pro.meta=http://fill-in-pro-meta-server:8080
3)重启portal服务(一定要重启)。
- java客户端调用时可使用下面方式:
1)在配置文件中添加 env=你的环境。对于Mac/Linux,文件位置为/opt/settings/server.properties
对于Windows,文件位置为C:\opt\settings\server.properties(没有可自己创建)。
2)在你应用的根目录或者config目录,添加文件apollo-env.properties,在文件中指定meta server。结合1.2步,就可以修改server.properties时,自动更改配置了。
dev.meta=http://10.18.226.60:8080/
fat.meta=http://10.18.226.74:8080/
uat.meta=http://apollo.uat.xxx.com
pro.meta=http://apollo.xxx.com
下一篇: spring boot 多环境配置