guava cache大量的WARN日志的问题分析

  • 时间:
  • 浏览:59
  • 来源:QQ星球网_提供辅助岛技术_270资源网资讯

2. 定义另一个多 空白的类就叫NullObject

 3. 但会 就可不都都能能解释问提为哪些只在生产环境出显,而开发环境不出显了,刚刚是触发了过期时间,亲们设置的过期时间是300分钟,也不 开发环境很少调试超过300分钟的,每次也有重新运行,也不 根本触发只有你你你是什么超时的地方。

4. 但会 接着调试,发现会走到亲们一现在结束了初始化cache的代码那边

有一天生产环境直接假死了,赶紧上服务器排查,发现日志后面 有几瓶的报WARN错误,但会 触发cache的get就会报警告,刚刚cache的触发频率超高,由于了日志磁盘爆满,一天三个G的日志后面 也有WARN的错误。但会 在开发环境下根本不触发你你你是什么错误,为什么么调试都这么进这段代码后面 。先暂时停用了缓存,但会 现在结束了排查。

at com.google.common.cache.LocalCache$Segment.refresh(LocalCache.java:2389)

1. 根据报错的堆栈,某些某些往上找,直到找到你你你是什么行的刚刚发现了某些端倪,他想找另一个多 newValue

3. 在通用的getCacheByName的方法中进行判断,取到的对象是也有NullObject类型的,刚刚是,则返回null给外层,进行重新加载。

 注意后面 的代码,(1)的位置,找只有就返回null,在网上找的代码后面 这里通常写的是return null刚刚return doThingsTheHardWay(key)累似 于的,但会 这么全部的doThingsTheHardWay描述,也不 我这里写了个null。

1. 修改(1)处的代码,将return null修改成return new NullObject()  

也不 根本的问提也不 这里返回null由于的错误了。

2. 继续顺着这条线往后面 找,直到找到这段代码,为哪些要找newValue呢,map时要刷新了,过期了,刚刚主动触发刷新值了。

google的你你你是什么开发工具后面 的缓存是个轻量化的缓存,累似 于另一个多 HashMap的实现,google在后面 加了也不 同步异步的操作。使用起来简单,不不额外搭建redis服务,故项目中使用了你你你是什么缓存。

找到了问提由于,处理方案就相对来说容易的也不 了