大致流程图
读缓存与读写缓存同步
ResponseCacheImpl
初始化的时候会开启一个定时任务,更新读缓存,默认每30
秒一次:
可以看到他会遍历所有读缓存,然后和读写缓存做对比,不同的话就把读写缓存的数据覆盖到读缓存中。这样就做了同步,以读写缓存为准。
读写缓存与注册表同步
注册表里的数据是最中数据啊,那读写缓存又怎么和注册表同步呢,其实就是在前面很多操作中的invalidate
失效缓存里,把相关缓存个失效了,于是发现缓存没有了,就会从注册表中获取,也就是同步啦:
还有一个地方,是缓存失效的地方,就是在刚创建读写缓存的时候,这里设置了写后多少时间失效,默认是180
秒后,同样失效了也是从注册表中获取,也是同步了:
失效默认事件:
好了,处理服务获取基本讲完了,增量获取也类似,自己看下吧。主要这里有个读写分离的思想,为了提高效率,如果只有一级读写缓存的话,那么读写是互斥的,效率就低了,所以这里用空间换时间,又加了一层读缓存,为了高可用,高性能,只能追求最终一致性啦。
集群结点同步
最后再补点这个,具体自己可以去看,我就画个图吧,很多操作成功的时候都会去同步结点的:
好了,今天就到这里了,希望对学习理解有帮助,大神看见勿喷,仅为自己的学习理解,能力有限,请多包涵。