
Nacos 配置数据的核心模型主要围绕着配置的唯一标识、内容、以及元数据展开。可以从以下几个方面来理解:
1. 配置集 (Configuration Set):
- Nacos 中的配置信息以配置集的形式组织。
- 一个配置集可以包含多个配置项。
2. 配置项 (Configuration Item):
- 配置项是配置信息的最小单位。
- 每个配置项包含一个键值对 (key-value)。
- 键 (key) 通常用于标识配置的用途或属性。
- 值 (value) 存储配置的实际内容。
3. 配置的唯一标识 (Data ID, Group, Tenant):
Nacos 使用 Data ID、Group 和 Tenant 三个维度来唯一确定一个配置集:
-
Data ID (数据 ID):
- 用于标识一个配置集。
- 通常是一个具有业务含义的字符串,例如
application.properties、database-config.yaml。 - Data ID 的命名规范建议:
- 以应用名或模块名为前缀。
- 使用
.或-分隔单词。 - 以文件扩展名结尾(例如
.properties、.yaml、.json)。
-
Group (分组):
- 用于对配置集进行分组。
- 可以将相关的配置集放在同一个 Group 中,方便管理。
- 默认的 Group 是
DEFAULT_GROUP。 - Group 的命名规范建议:
- 使用具有业务含义的名称,例如
DEFAULT_GROUP、DEV_GROUP、PROD_GROUP。
- 使用具有业务含义的名称,例如
-
Tenant (租户):
- 用于实现多租户的配置隔离。
- 不同的租户可以拥有相同的 Data ID 和 Group,但它们的配置内容是相互隔离的。
- Tenant 的值通常对应一个租户 ID 或命名空间 ID。
- 如果不指定 Tenant,则使用默认的命名空间(public)。
4. 配置元数据 (Metadata):
除了 Data ID、Group、Tenant 之外,Nacos 还为配置集提供了一些元数据:
-
Type (类型):
- 表示配置内容的格式,例如
properties、yaml、json、xml、text、html等。 - Nacos Client 可以根据 Type 对配置内容进行解析。
- 表示配置内容的格式,例如
-
MD5:
- 配置内容的 MD5 值,用于校验配置是否发生变更。
- Nacos Client 在获取配置时,会比较本地缓存的 MD5 值和 Nacos Server 返回的 MD5 值。如果 MD5 值不同,则说明配置已更新。
-
LastModifiedTime (最后修改时间):
- 配置的最后修改时间。
-
Tags (标签):
- 用户自定义的标签,可以用于对配置进行分类或标记.
5. 配置内容的格式:
Nacos 支持多种配置格式,包括:
- Properties: Java Properties 文件格式。
- YAML: YAML 格式。
- JSON: JSON 格式。
- XML: XML 格式。
- TEXT: 纯文本格式。
- HTML: HTML 格式。
总结 (关键字段含义):
| 字段 | 含义 | 示例 |
|---|---|---|
| Data ID | 配置集的唯一标识符,通常是一个具有业务含义的字符串 | application.properties、db-config.yaml |
| Group | 用于对配置集进行分组,方便管理 | DEFAULT_GROUP、DEV_GROUP |
| Tenant | 用于实现多租户的配置隔离 | tenant-id-1、public (默认) |
| Type | 配置内容的格式 | properties、yaml、json |
| MD5 | 配置内容的 MD5 值,用于校验配置是否发生变更 | d41d8cd98f00b204e9800998ecf8427e |
| Content | 配置的实际内容 | username=test、{"key": "value"} |
| LastModifiedTime | 最后修改时间 | |
| Tags | 用户自定义标签 |
通过 Data ID、Group 和 Tenant 三个维度,Nacos 可以唯一确定一个配置集,并实现多租户、多环境的配置隔离。 Nacos Client 通过监听配置变更,可以实现动态配置更新。
823

被折叠的 条评论
为什么被折叠?



