【深入理解SpringCloud微服务】深入理解nacos配置中心(三)——服务端启动与获取配置源码分析
原理回顾
服务端启动
我们在《宏观理解nacos配置中心原理》的文章说到了,服务端启动的原理。

会调用DumpService查询MySQL,然后把查询到的配置信息dump到磁盘成为一个个的配置文件,每个DataId对应一个配置文件。
获取配置
然后服务端接收到获取配置文件的请求时,从磁盘中查询对应文件返回,而不是去查询数据库。

源码分析
服务端启动
ExternalDumpService#init()
我们以nacos配置的数据库是MySQL的情况为例子,DumpService的实现类就是ExternalDumpService。
nacos配置中心其实就是一个SpringBoot应用,它的启动就是SpringBoot启动。然后由于ExternalDumpService的init()方法被@PostConstruct注解修饰,因此在初始化ExternalDumpService时init()方法会被调用。
@PostConstruct
@Override
protected void init() throws Throwable {
dumpOperate(processor, dumpAllProcessor, dumpAllBetaProcessor, dumpAllTagProcessor);
}

protected void dumpOperate(DumpProcessor processor, DumpAllProcessor dumpAllProcessor,
DumpAllBetaProcessor dumpAllBetaProcessor, DumpAllTagProcessor dumpAllTagProcessor) throws NacosException {
...
dumpConfigInfo(dumpAllProcessor);
...
}
private void dumpConfigInfo(DumpAllProcessor dumpAllProcessor) throws IOException {
...
dumpAllProcessor.process(new DumpAllTask());
...
}

经过一轮调用,进入到DumpAllProcessor#process方法。
@Override
public boolean process

最低0.47元/天 解锁文章
7902

被折叠的 条评论
为什么被折叠?



