dubbo源码解析,关于cache缓存日志

在dubbo中,会有cache缓存文件,这样消费端就可以直接调用服务端,那么这个缓存文件是怎么生成的呢,我们看下源码分析。dubbo源码解析,关于cache缓存日志

首先在dorefer方法中,会进行发布订阅,就是标蓝那行,

然后dubbo源码解析,关于cache缓存日志

dubbo源码解析,关于cache缓存日志

在发布订阅方法中,有个notify()方法,此方法最后进入了,AbstractRegistry的notify方法,如下:我们直接看关键性代码:

dubbo源码解析,关于cache缓存日志

dubbo就是在这个saveProperties方法中做了缓存文件写入。不过这个缓存文件是加锁写入的,如果多个应用同时读取同一个文件,会报错,如下:dubbo源码解析,关于cache缓存日志

以上是doSaveProperties()方法中的一段,在获取不到缓存文件锁的时候就会抛出以上异常。