欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Apollo多环境切换

程序员文章站 2022-05-08 12:51:16
...

在初学Apollo的时候,一直有一个问题没想通,就是Apollo多个环境是怎么创建和切换的。刚突然想通了,先记录一下,后续待验证测试。

  1. 创建多个环境
    看官方文档时,Apollo有一个很便利的特点,就是portal可以管理多个环境,如env=dev(fat,uat,pro…),所以第一,我们需要有这多个环境。根据官方文档,每一个环境需要独立部署一套Config Service、Admin Service和ApolloConfigDB,所以第一步需要在不同的服务器安装这些环境。(portal和ApolloPortalDB可以共用)。

  2. 将多个环境配置到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的地址),根据你的具体情况作出调整。
  1. 客户端设置
    其实做完上面两步,多环境已经配置完成了,你就可以在你的portal里看到不同的环境了。那客户端该调用哪个环境呢。可通过设置配置文件的方式:修改/opt/settings/server.properties(Mac/Linux)或C:\opt\settings\server.properties(Windows)(没有该文件可自己创建)。
    文件中加入:env=(你所要访问的环境)
    如:env=DEV( 大小写不敏感)

通过上面三步,就可以实现Apollo的多环境设置了。需要注意的是,Apollo是会自动查找默认配置的。比如说你在客户端里设置了env=pro,但你并没有pro这个环境,那么他会自动去查找你存在的环境配置,若你只有一个dev环境,那么你会发现,不管你怎么配置,你总是会获取到dev的配置信息。

以上是我查看官方文档,想到的方式,暂时还未曾验证。先做记录后续验证吧。

后续:上述步骤,经验证是可行的。但有几点需要注意下:

  1. 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服务(一定要重启)。
  1. 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
相关标签: Apollo多环境配置