分布式配置中心 Apollo 实战 - Apollo 控制台操作手册
基础设置
添加部门
Apollo
默认初始化了两个部门,一般在实际运用中我们需要新增自己的部门。可在系统参数中进行修改:
点击右上角管理员工具->系统参数:
输入 key
查询已存在的部门配置:organizations
修改 value
中的 json
串来添加新的部门,例如添加一个研发部门,完整的 json
串如下:
1 | [{"orgId":"TEST1","orgName":"样例部门1"},{"orgId":"TEST2","orgName":"样例部门2"},{"orgId":"Dev","orgName":"研发部门"}] |
添加用户
Apollo
默认提供了一个超级管理员用户 apollo
,可在用户管理中添加用户。
点击右上角管理员工具->用户管理:
添加用户 sunchaser
:
应用管理
创建应用
用超级管理员账号 apollo
登录后进入首页,点击创建应用:
输入项目信息:
- 部门:选择应用所在的部门。
AppId
:用来标识应用的唯一id
,需要和Java
程序配置的app.id
配置项对应。- 应用名称:应用名,仅用于控制台页面展示。
- 应用负责人:应用的管理员,默认具有应用管理员权限,可以创建
Namespace
和集群、分配用户权限。
以创建一个用户服务为例,输入项目信息如下:
点击提交后自动跳转到应用配置页:
给应用负责人授权
应用创建完成后,默认应用负责人还无法修改和发布配置,需要主动进行授权。点击应用配置页的授权按钮进入授权页面:
授予用户 sunchaser
修改权和发布权。
也可用应用负责人账号登录,自己给自己授权。
应用负责人账号登录
应用负责人账号只能看到它所负责的应用。
删除应用
点击右上角管理员工具->删除应用、集群:
先根据 AppId
查询出要删除的应用,再点击删除应用:
配置管理
以上述 user-service
应用为例进行配置管理。
添加并发布配置
在应用配置页点击新增配置,分别输入 key
和 value
:
点击提交后可看到配置项处于未发布状态,需要手动点击发布按钮进行发布:
修改并发布配置
点击配置项右侧操作列的修改图标,输入新值后进行提交:
同样地,修改提交后的配置项也需要手动点击发布按钮进行发布后才能生效。
删除配置
点击配置项右侧操作列的删除图标,确认删除配置:
同样地,确认删除后也需要手动点击发布按钮进行发布:
namespace 管理
新增 namespace
namespace
是一个应用下不同类型配置项的分组。例如我们把和数据库连接相关的配置项作为一个叫做 db
的 namespace
。
点击应用配置页左下角的添加 Namespace
:
选择创建 Namespace
,填入名称 db
,选择类型 private
(项目私有的 namespace
),点击提交:
创建成功后会自动跳转到针对该 namespace
的权限管理页面:
点击返回到应用首页,可看到新增的 namespace
显示在下方:
给 db
这个 namespace
里添加配置项,例如待添加的配置项如下:
1 | spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver |
我们可以利用文本格式快速添加配置,切换到文本 Tab
页,点击修改配置:
复制上述配置项粘贴到文本框中,提交修改:
点击发布后即可生效。
公共 namespace
实际项目开发中,部分配置可能是通用的,我们可以把通用的配置放到公共 namespace
中,这样其它项目就可以通过继承公共 namespace
得到通用配置项。
首先需要新建一个存放公共 namespace
的应用(common-config
):
点击左下角添加 namespace
,输入相关信息:
注意选择类型为 public
表示公共 namespace
。
创建完成后我们在配置页新增以下公共配置并发布:
1 | spring.http.encoding-enabled=true |
其它项目关联公共 namespace
回到 user-service
应用的配置页,点击左下角添加 namespace
,选择公共 namespace
进行关联:
回到应用首页,可看到已继承了公共 namespace
中的配置
覆盖公共 namespace 的配置
例如我们想在 user-service
应用中个性化配置 server.servlet.context-path
配置项,点击操作列的覆盖此配置图标,修改 value
值后点击提交并发布:
可看到刚才的修改已经覆盖了公共 namespace
中的配置:
集群 cluster 管理
默认情况下,在一个环境中会有一个默认的 default
集群,所有配置项都存在于该集群中,虽然在配置页面上无法看到,但 default
集群是真实存在的。
在某些情况下,我们可能需要在一个环境下创建多个集群,例如开发环境中创建两个集群用于提供给不同的业务方联调;或者生产环境下部署异地多活架构。这时就可能会出现不同集群下的配置信息不一致的情况,所以我们需要进行集群的管理。
创建集群
以 user-service
应用为例,点击左下方创建集群,输入集群名称 hangzhou
并选择环境 DEV
:
创建好的新 hangzhou
集群默认包含了本应用的全部 private
类型的 namespace
,但是没有配置项数据,同时也未继承公共 namespace
,需要我们手动进行添加。
同步集群配置
当配置项过多时,手动添加配置项可能比较麻烦。针对不同的集群,Apollo
为我们提供了同步配置的功能,把源集群的配置项同步到目标集群,这里我们是把 default
集群下的配置项同步到 hangzhou
集群。
点击配置页 default
集群下的 namespace
下的同步配置按钮:
勾选目标集群 hangzhou
和需要同步的配置项后点击下一步:
确认 diff
信息无误后点击同步:
然后在 hangzhou
集群下就可看到同步过去的配置,但仍需手动发布才可生效:
对于公共 namespace
来说,我们可以选择在 hangzhou
集群下新建 namespace
进行关联,或者在 default
集群下点击同步配置进行同步。