第二章:核心概念
应用
应用定义
应用(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 形式
- 发布:配置变更流程
- 灰度:部分发布
- 权限:角色和权限控制
下一章我们将学习快速开始。