文章目录
- 1. 概述
- 2. 配置管理
- 2.1 CRUD
- 2.2 版本管理
- 2.3 灰度管理
- 2.4 监听管理
- 2.5 推送轨迹
- 2.6 示例代码
- 2.6 聚合数据
1. 概述
在Nacos
的架构图中,配置管理包含了配置CRUD
、版本管理、灰度管理、监听管理、推送轨迹、聚合数据等功能。
在上篇文档中,我们已经学习了如何创建配置,并集成到客户端,接下来全面了解一下Nacos
中的配置管理功能。
2. 配置管理
Nacos
支持基于Namespace
和Group
的配置分组管理,以便用户更灵活的根据自己的需要按照环境或者应用、模块等分组管理微服务以及Spring
的大量配置,在配置管理中主要提供了配置历史版本、回滚、订阅者查询等核心管理能力。
2.1 CRUD
在配置列表菜单中,选择命名空间后,点击新建配置:
输入一些配置信息,就可以创建一个配置集,Nacos
支持 YAML
、Properties
、TEXT
、JSON
、XM
、HTML
等常见配置格式在线编辑、语法高亮、格式校验,帮助用户高效编辑的同时大幅降低格式错误带来的风险。
支持配置标签的能力,帮助用户更好、更灵活的做到基于标签的配置分类及管理。同时支持用户对配置及其变更进行描述,方便多人或者跨团队协作管理配置。
发布成功后,回到配置列表,可以通过条件查询配置列表:
点击删除按钮,可以删除某个配置:
点击编辑,可以修改配置文件内容和一些基础信息:
编辑后发布时,还会提示修改了哪些内容,帮助用户校验修改内容,降低改错带来的风险····:
也提供了相关Open API:
- 获取配置
- 发布配置
- 删除配置
- 查询配置历史版本列表
- 查询具体版本的历史配置
- 查询配置上一版本信息
- 查询指定命名空间下的配置列表
2.2 版本管理
在历史版本菜单中,可以输入条件,查询某个配置集的所有版本:
在操作栏中,可以查看详情,和当前最新版本进行比较,并支持版本回滚:
当升级某个配置,发现有问题时,可以迅速回退到某个时间点的历史版本,这是一个非常有用的功能。帮助用户改错配置的时候能够快速恢复,降低微服务系统在配置管理上的一定会遇到的可用性风险。
2.3 灰度管理
软件部署性新版本时也很多策略,比如:
- 全量发布:全部升级到最新版本,存在很多弊端,比如存在
BUG
时,影响所有用户体验。 - 灰度发布:按照一定的策略上线部分新版本,同时保留老版本,让部分用户体验新版本,并经过一段时间的反馈收集,然后再将所有服务逐步升级到最新版本
灰度发布又分为;
- 金丝雀发布:先升级服务的一个实例,如果该实例没有问题,再全部升级剩余实例,如果有问题,再进行回滚。
- 滚动发布:第一次使用金丝雀发布,后续则使用多批次的形式发布剩余实例,每次批次之间会进行观察,如果有问题,再进行回滚。
- 蓝绿发布:发布前不用全部停机,而是另外部署新版本全部实例,然后再把流量全部再切换到新版本。
Nacos
配置管理支持灰度发布,以服务实例IP
为粒度,将配置下发给指定的服务实例,其他客户端则使用旧版本, 当运行一段时间无问题后,再全部升级到新版本。
案例演示,当前需要升级某个配置文件,点击编辑时,勾选Beta
发布,可以选择或者输入当前需要下发的IP
,多个IP
用逗号分隔:
在发布时,可以选择灰度发布:
2.4 监听管理
Nacos
提供配置订阅者即监听者查询能力,同时提供客户端当前配置的MD5
校验值,以便帮助用户更好的检查配置变更是否推送到Client
端,支持IP
和配置两个查询维度。
配置维度:
IP
维度:
2.5 推送轨迹
推送轨迹,是指Nacos
务或配置从 server
端到 client
端的一次推送链路上的相关信息展示。从而非常清晰地观测到 Nacos
推送功能的履约情况,极大的提高问题的排查效率。
推送轨迹可以让用户非常方便的查询到:
- 注册中心服务推送的信息
- 配置中心的配置变更发布和推送的信息
推送轨迹原先是MSE Nacos
(企业版)的功能, 社区开源版从2.2.0
版本开始,可通过SPI
机制注入轨迹追踪实现插件,目前也是处于Beta
测试阶段,后续再进行相关介绍和演示。
2.6 示例代码
点击操作栏的示例代码:
提供各种编程语言示例代码能力,能够让新手快速使用客户端编程消费该配置,大幅降低新手使用门槛:
2.6 聚合数据
暂时没有看到该功能的相关文档,后续再补充。