Nacos 服务端配置更新机制

这篇文章重点介绍,我们在 Nacos 配置中心填写完应用程序的配置信息之后,点击发布,Nacos 服务端具体做了哪些事情,以及他们的原理。

服务端入口

我们在 Nacos 的配置填写界面填过配置信息之后,点击发布按钮,就会把这些内容提交到服务端。
在这里插入图片描述

通过浏览器抓包工具,找到请求接口URL:/nacos/v1/cs/configs 。根据这个关键字直接搜索到服务端入口:ConfigController#publishConfig。

查阅服务端入口代码,发现服务端主要做了三件事情:参数合理性校验、配置数据更新到数据库、打印日志。

数据存储到数据库

数据校验通过之后,会调用EmbeddedStoragePersistServiceImpl#insertOrUpdate进行数据存储。

具体流程:首先查询数据库是否已经存储过这份配置内容,没有的话新加入,有的话就更新。
在这里插入图片描述

发布事件

数据存储完毕之后,会接着发布 ConfigDataChangeEvent 事件。这个事件负责数据变更之后,再同步数据到Nacos 集群中的其他机器。

同步数据处理完成的时候,紧接着发布 LocalDataChangeEvent 事件,负责通知监听的Nacos Client,服务端配置数据发生了变更。

LongPollingService 注册和监听LocalDataChangeEvent这个事件,构建DataChangeTask任务处理。

服务端数据变更的这个时刻,如果有订阅的客户端在监听,会收到服务端响应。如果是 客户端是V1版本的话,会发送一个监听请求ConfigController#listener ,服务端在请求超时之间的这段时间内,一旦数据有变更,会及时返回给客户端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值