使用nacos2.0.2版本并使用mysql持久化,在nacos配置列表中修改配置保存。此操作的底层是在c | Nacos 官网
云栖回顾 | 2024 云栖大会微服务和网关相关演讲材料点此了解

使用nacos2.0.2版本并使用mysql持久化,在nacos配置列表中修改配置保存。此操作的底层是在c


用户问题 :

使用nacos2.0.2版本并使用mysql持久化,在nacos配置列表中修改配置保存。此操作的底层是在config_info表中是新增还是修改


专家官方解答 :

在Nacos 2.0.2版本中,当你在配置列表中修改配置并保存时,这一操作的底层实际上是在config_info表中进行修改而非新增。Nacos设计上会通过匹配配置的唯一标识(如dataId和group)来定位到已存在的配置记录,并更新其配置内容及相关元数据,比如修改时间等。这一过程确保了配置的历史变更可以通过his_config_info表跟踪,而当前生效的配置则始终保持在config_info表中最新的状态。

分析依据

根据我了解的知识中的描述,特别是第2篇参考内容提到的Nacos配置变更历史管理,我们知道Nacos会记录每次配置的变更到his_config_info表中,这意味着每次配置的修改都不会直接在原记录上覆盖,而是生成一个新的历史记录并保留旧版本。而对于config_info表,它存储的是当前生效的配置信息,因此对配置的修改应当是对已有记录的更新操作。

操作解释

  1. 用户交互:用户在Nacos控制台或通过API对配置进行修改并保存。
  2. 服务端处理:Nacos服务端接收到修改请求后,首先会验证请求的合法性(如权限检查)。
  3. 查找与更新:根据dataId和group找到config_info表中对应的配置记录,然后更新该记录的配置内容、修改时间和版本号等信息。
  4. 历史记录:同时,在his_config_info表中生成一条新记录,保存修改前的配置状态,包括变更的时间戳、操作人等元数据,以此来追踪配置的变更历史。
  5. 通知客户端:更新完成后,Nacos会通过其内部的配置监听与通知机制,告知所有订阅了该配置项的客户端进行配置更新,客户端通过比对MD5值判断是否需要拉取最新配置。

综上所述,直接在Nacos配置列表中的修改操作涉及到了config_info表的更新及配置变更历史的记录,确保了配置的实时性和历史可追溯性。

---------------

参考链接 :

  • 专家经验:NACOS 配置中心和注册中心是分两个集群部署还是放在一个集群中

  • 专家经验:请问nacos使用mysql作为后端数据库,记录会保留多久呢?

  • 专家经验:Nacos 配置中心的数据同步和一致性问题

---------------

答疑服务说明:

本内容经由技术专家审阅的用户问答的镜像生成,我们提供了专家智能答疑服务,使用方法: 用法1: 在页面的右下的浮窗”专家答疑“。 用法2: 点击专家答疑页(针对部分网站不支持插件嵌入的情况)

另:

有其他开源产品的使用问题?点击访问阿里AI专家答疑服务

反馈

如问答有错漏,欢迎点:差评给我们反馈。