最近线上应用发现了一个问题,系统启动构建缓存会出现缓存数据为空的情况,仔细分析整个流程
,开始以为是代码疏忽导致bug,后来在仔细分析整个流程发现是由于a缓存先进行缓存、b在缓存数据,
取数据时发现a缓存中存在,但b缓存中数据还未缓存,取b缓存为空导致异常。
现在是调整了顺序,需要b先缓存然后在a进行缓存。整个问题就处理掉了,因为a、b缓存过程本身
都是依赖线程安全的缓存。