跳转至

第二章:核心概念

应用

应用定义

应用(App):
- 配置管理的最小单位
- 每个应用有唯一的 AppId
- 应用包含多个环境、集群、命名空间

应用配置

# application.yml
app:
  id: order-service

环境

环境类型

环境(Environment):
- DEV:开发环境
- FAT:功能验收测试环境
- UAT:用户验收测试环境
- PRO:生产环境

环境配置

# apollo-env.properties
dev.meta=http://localhost:8080
fat.meta=http://fat.apollo.com:8080
uat.meta=http://uat.apollo.com:8080
pro.meta=http://pro.apollo.com:8080

集群

集群定义

集群(Cluster):
- 同一环境下的不同部署单元
- 可以是不同数据中心
- 可以是不同机房

集群配置

默认集群:default
自定义集群:
- shanghai:上海机房
- beijing:北京机房
- aws:AWS 云

命名空间

命名空间类型

命名空间(Namespace):
- 私有命名空间:应用独有
- 公共命名空间:多个应用共享
- 关联命名空间:继承公共命名空间

命名空间格式

格式类型:
- properties:键值对格式
- xml:XML 格式
- json:JSON 格式
- yml/yaml:YAML 格式
- txt:文本格式

命名空间示例

# application.properties
server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/db
spring.datasource.username=root

# redis.properties
redis.host=localhost
redis.port=6379

配置项

配置项格式

# Key-Value 格式
key1=value1
key2=value2

# 带注释
# 这是注释
key3=value3

配置项操作

操作类型:
- 新增:添加新的配置项
- 修改:修改已有配置项
- 删除:删除配置项
- 发布:发布配置变更

发布

发布流程

发布流程:
1. 编辑配置
2. 提交变更
3. 审批(可选)
4. 发布
5. 推送到客户端

发布类型

发布类型:
- 正常发布:全量发布
- 灰度发布:部分发布
- 回滚:回滚到历史版本

灰度

灰度规则

灰度规则:
- 按 IP:指定 IP 列表
- 按集群:指定集群
- 按比例:按百分比

灰度流程

灰度流程:
1. 创建灰度
2. 配置灰度规则
3. 配置灰度配置项
4. 发布灰度
5. 全量发布或放弃灰度

权限

角色类型

角色类型:
- Master:应用管理员
- Developer:开发者
- Viewer:查看者

权限控制

权限控制:
- 配置编辑权限
- 配置发布权限
- 灰度发布权限

小结

核心概念要点:

  • 应用:配置管理最小单位
  • 环境:DEV/FAT/UAT/PRO
  • 集群:不同部署单元
  • 命名空间:配置分组
  • 配置项:Key-Value 形式
  • 发布:配置变更流程
  • 灰度:部分发布
  • 权限:角色和权限控制

下一章我们将学习快速开始。