【Nacos 源码之配置管理 五】为什么把配置文件 Dump 到磁盘中
作者:石臻臻,CSDN 博客之星 Top5、Kafka Contributor、nacos Contributor、华为云 MVP,腾讯云 TVP,滴滴 Kafka 技术专家、 KnowStreaming。
KnowStreaming 是滴滴开源的Kafka运维管控平台, 有兴趣一起参与参与开发的同学,但是怕自己能力不够的同学,可以联系我,当你导师带你参与开源! 。
Part1 前言
上一篇文章 【Nacos源码之配置管理 四】DumpService如何将配置文件全部Dump到磁盘中 分析了 Nacos 将配置文件 Dump 的磁盘中,那我为什么要 Dump 到磁盘中呢?这样做有什么好处?哪些地方读取了磁盘中的文件?带着这些问题,我们去源码中一探究竟;
1.快速启动,将数据库中的数据与磁盘对比 MD5 判断是否修改
2. 同步配置获取接口 ConfigServletInner.doGetConfig
这是一个 Http 请求调用的接口,这是获取配置数据的接口,最终是调用了 DiskUtil.targetFile(dataId, group, tenant);
方法得到配置文件; 然后把文件中的信息返回到 Response 中给请求方;
注意: 配置中心的内存是没有保存配置信息 content 的;因为 content 一般数据都不小;全部存放到内存中,对 Jvm 的内存占用比较大,所以内存只保存了基本信息;content 具体内容保存在磁盘中; 等客户端发起 Http 请求获取对应配置信息的时候,再去磁盘中读取返回给客户端; 读取磁盘文件肯定是比读取数据库效率要高高的;
为什么要把配置文件 Dump 到磁盘中
Dump 配置文件到磁盘中可以提高性能; 客户端想要请求配置数据的时候,发起 Http 请求给服务端; 服务端会去磁盘中读取对应文件返回; 读取磁盘文件比直接读取数据库效率要高;然后服务端会跟最新的数据会保持一致,如果修改了配置,不仅 Jvm 内存数据会更新,也会把最新的 content 内容及时保存到磁盘文件中;
版权声明: 本文为 InfoQ 作者【石臻臻的杂货铺】的原创文章。
原文链接:【http://xie.infoq.cn/article/935715f9b0d8aadcdef54cbe9】。未经作者许可,禁止转载。
评论