基础设置

添加部门

Apollo 默认初始化了两个部门,一般在实际运用中我们需要新增自己的部门。可在系统参数中进行修改:

点击右上角管理员工具->系统参数:

admin_tools_system_config

输入 key 查询已存在的部门配置:organizations

select_organizations

修改 value 中的 json 串来添加新的部门,例如添加一个研发部门,完整的 json 串如下:

1
[{"orgId":"TEST1","orgName":"样例部门1"},{"orgId":"TEST2","orgName":"样例部门2"},{"orgId":"Dev","orgName":"研发部门"}]

添加用户

Apollo 默认提供了一个超级管理员用户 apollo,可在用户管理中添加用户。

点击右上角管理员工具->用户管理:

admin_tools_user_manage

添加用户 sunchaser

add_user_sunchaser

应用管理

创建应用

用超级管理员账号 apollo 登录后进入首页,点击创建应用:

create_app

输入项目信息:

  • 部门:选择应用所在的部门。
  • AppId:用来标识应用的唯一 id,需要和 Java 程序配置的 app.id 配置项对应。
  • 应用名称:应用名,仅用于控制台页面展示。
  • 应用负责人:应用的管理员,默认具有应用管理员权限,可以创建 Namespace 和集群、分配用户权限。

以创建一个用户服务为例,输入项目信息如下:

create_app_detail

点击提交后自动跳转到应用配置页:

config_index

给应用负责人授权

应用创建完成后,默认应用负责人还无法修改和发布配置,需要主动进行授权。点击应用配置页的授权按钮进入授权页面:

authorize

授予用户 sunchaser 修改权和发布权。

也可用应用负责人账号登录,自己给自己授权。

应用负责人账号登录

app_owner_account

应用负责人账号只能看到它所负责的应用。

删除应用

点击右上角管理员工具->删除应用、集群:

admin_tools_remove_app

先根据 AppId 查询出要删除的应用,再点击删除应用:

remove_app_detail

配置管理

以上述 user-service 应用为例进行配置管理。

添加并发布配置

在应用配置页点击新增配置,分别输入 keyvalue

add_kv_config

点击提交后可看到配置项处于未发布状态,需要手动点击发布按钮进行发布:

unpublished_config

confirm_publish

修改并发布配置

点击配置项右侧操作列的修改图标,输入新值后进行提交:

update_kv_config

update_new_value

同样地,修改提交后的配置项也需要手动点击发布按钮进行发布后才能生效。

删除配置

点击配置项右侧操作列的删除图标,确认删除配置:

delete_config

同样地,确认删除后也需要手动点击发布按钮进行发布:

publish_delete

namespace 管理

新增 namespace

namespace 是一个应用下不同类型配置项的分组。例如我们把和数据库连接相关的配置项作为一个叫做 dbnamespace

点击应用配置页左下角的添加 Namespace

add_namespace

选择创建 Namespace,填入名称 db,选择类型 private(项目私有的 namespace),点击提交:

add_db_namespace

创建成功后会自动跳转到针对该 namespace 的权限管理页面:

authorize_namespace

点击返回到应用首页,可看到新增的 namespace 显示在下方:

db_namespace

db 这个 namespace 里添加配置项,例如待添加的配置项如下:

1
2
3
4
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test_db?useUnicode=true&characterEncoding=UTF-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456

我们可以利用文本格式快速添加配置,切换到文本 Tab 页,点击修改配置:

update_db_namespace

复制上述配置项粘贴到文本框中,提交修改:

copy_config_to_db_namespace

db_namespace_updated

点击发布后即可生效。

公共 namespace

实际项目开发中,部分配置可能是通用的,我们可以把通用的配置放到公共 namespace 中,这样其它项目就可以通过继承公共 namespace 得到通用配置项。

首先需要新建一个存放公共 namespace 的应用(common-config):

common_config

点击左下角添加 namespace,输入相关信息:

common_config_detail

注意选择类型为 public 表示公共 namespace

创建完成后我们在配置页新增以下公共配置并发布:

1
2
3
spring.http.encoding-enabled=true
spring.http.encoding-charset=UTF-8
server.servlet.context-path=/

common_namespace_config

其它项目关联公共 namespace

回到 user-service 应用的配置页,点击左下角添加 namespace,选择公共 namespace 进行关联:

associate_common_namespace

回到应用首页,可看到已继承了公共 namespace 中的配置

extends_common_config

覆盖公共 namespace 的配置

例如我们想在 user-service 应用中个性化配置 server.servlet.context-path 配置项,点击操作列的覆盖此配置图标,修改 value 值后点击提交并发布:

override_common_config

可看到刚才的修改已经覆盖了公共 namespace 中的配置:

override_config_info

集群 cluster 管理

默认情况下,在一个环境中会有一个默认的 default 集群,所有配置项都存在于该集群中,虽然在配置页面上无法看到,但 default 集群是真实存在的。

在某些情况下,我们可能需要在一个环境下创建多个集群,例如开发环境中创建两个集群用于提供给不同的业务方联调;或者生产环境下部署异地多活架构。这时就可能会出现不同集群下的配置信息不一致的情况,所以我们需要进行集群的管理。

创建集群

user-service 应用为例,点击左下方创建集群,输入集群名称 hangzhou 并选择环境 DEV

add_cluster

创建好的新 hangzhou 集群默认包含了本应用的全部 private 类型的 namespace,但是没有配置项数据,同时也未继承公共 namespace,需要我们手动进行添加。

hangzhou_cluster_config

同步集群配置

当配置项过多时,手动添加配置项可能比较麻烦。针对不同的集群,Apollo 为我们提供了同步配置的功能,把源集群的配置项同步到目标集群,这里我们是把 default 集群下的配置项同步到 hangzhou 集群。

点击配置页 default 集群下的 namespace 下的同步配置按钮:

sync_config

勾选目标集群 hangzhou 和需要同步的配置项后点击下一步:

check_config_item

确认 diff 信息无误后点击同步:

check_diff

然后在 hangzhou 集群下就可看到同步过去的配置,但仍需手动发布才可生效:

hangzhou_synced_config

对于公共 namespace 来说,我们可以选择在 hangzhou 集群下新建 namespace 进行关联,或者在 default 集群下点击同步配置进行同步。