Nacos 2.x 入门系列【10】配置管理

304 阅读5分钟

1. 概述

Nacos的架构图中,配置管理包含了配置CRUD、版本管理、灰度管理、监听管理、推送轨迹、聚合数据等功能。 image.png 在上篇文档中,我们已经学习了如何创建配置,并集成到客户端,接下来全面了解一下Nacos中的配置管理功能。

2. 配置管理

Nacos支持基于NamespaceGroup的配置分组管理,以便用户更灵活的根据自己的需要按照环境或者应用、模块等分组管理微服务以及Spring的大量配置,在配置管理中主要提供了配置历史版本、回滚、订阅者查询等核心管理能力。

2.1 CRUD

在配置列表菜单中,选择命名空间后,点击新建配置: image.png

输入一些配置信息,就可以创建一个配置集,Nacos支持 YAMLPropertiesTEXTJSONXMHTML 等常见配置格式在线编辑、语法高亮、格式校验,帮助用户高效编辑的同时大幅降低格式错误带来的风险。

支持配置标签的能力,帮助用户更好、更灵活的做到基于标签的配置分类及管理。同时支持用户对配置及其变更进行描述,方便多人或者跨团队协作管理配置。

image.png

发布成功后,回到配置列表,可以通过条件查询配置列表: image.png 点击删除按钮,可以删除某个配置: image.png 点击编辑,可以修改配置文件内容和一些基础信息: image.png 编辑后发布时,还会提示修改了哪些内容,帮助用户校验修改内容,降低改错带来的风险····: image.png

也提供了相关Open API

2.2 版本管理

在历史版本菜单中,可以输入条件,查询某个配置集的所有版本: image.png 在操作栏中,可以查看详情,和当前最新版本进行比较,并支持版本回滚: image.png

当升级某个配置,发现有问题时,可以迅速回退到某个时间点的历史版本,这是一个非常有用的功能。帮助用户改错配置的时候能够快速恢复,降低微服务系统在配置管理上的一定会遇到的可用性风险。

2.3 灰度管理

软件部署性新版本时也很多策略,比如:

  • 全量发布:全部升级到最新版本,存在很多弊端,比如存在BUG时,影响所有用户体验。
  • 灰度发布:按照一定的策略上线部分新版本,同时保留老版本,让部分用户体验新版本,并经过一段时间的反馈收集,然后再将所有服务逐步升级到最新版本

灰度发布又分为;

  • 金丝雀发布:先升级服务的一个实例,如果该实例没有问题,再全部升级剩余实例,如果有问题,再进行回滚。
  • 滚动发布:第一次使用金丝雀发布,后续则使用多批次的形式发布剩余实例,每次批次之间会进行观察,如果有问题,再进行回滚。
  • 蓝绿发布:发布前不用全部停机,而是另外部署新版本全部实例,然后再把流量全部再切换到新版本。

Nacos配置管理支持灰度发布,以服务实例IP为粒度,将配置下发给指定的服务实例,其他客户端则使用旧版本, 当运行一段时间无问题后,再全部升级到新版本。

案例演示,当前需要升级某个配置文件,点击编辑时,勾选Beta发布,可以选择或者输入当前需要下发的IP,多个IP用逗号分隔: image.png 在发布时,可以选择灰度发布:

image.png

2.4 监听管理

Nacos提供配置订阅者即监听者查询能力,同时提供客户端当前配置的MD5校验值,以便帮助用户更好的检查配置变更是否推送到Client端,支持IP和配置两个查询维度。

配置维度: image.png IP维度: image.png

2.5 推送轨迹

推送轨迹,是指Nacos务或配置从 server 端到 client 端的一次推送链路上的相关信息展示。从而非常清晰地观测到 Nacos 推送功能的履约情况,极大的提高问题的排查效率。

推送轨迹可以让用户非常方便的查询到:

  • 注册中心服务推送的信息
  • 配置中心的配置变更发布和推送的信息

推送轨迹原先是MSE Nacos(企业版)的功能, 社区开源版从2.2.0版本开始,可通过SPI机制注入轨迹追踪实现插件,目前也是处于Beta测试阶段,后续再进行相关介绍和演示。

2.6 示例代码

点击操作栏的示例代码: image.png

提供各种编程语言示例代码能力,能够让新手快速使用客户端编程消费该配置,大幅降低新手使用门槛: image.png

2.6 聚合数据

暂时没有看到该功能的相关文档,后续再补充。