加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

java – @Cacheable是否意识到’Thundering Herd’的问题?

发布时间:2020-12-15 01:30:44 所属栏目:大数据 来源:网络整理
导读:“雷鸣般的群体”问题发生在高度并发的环境中(通常是许多用户).当许多用户同时向同一条数据发出请求,并且存在高速缓存未命中(高速缓存元素的数据不存在于高速缓存中)时,触发了雷鸣般的群体问题. 我找不到证据表明ehcache-spring-annotations正在解决这个问题

“雷鸣般的群体”问题发生在高度并发的环境中(通常是许多用户).当许多用户同时向同一条数据发出请求,并且存在高速缓存未命中(高速缓存元素的数据不存在于高速缓存中)时,触发了雷鸣般的群体问题.

我找不到证据表明ehcache-spring-annotations正在解决这个问题.

我是否要编写包装器并使用显式锁定机制?

最佳答案
对你的问题的简短回答是“不”.缓存注释在某种程度上是通用的,而像“雷鸣般的群体”这样的问题的解决方案是特定于实现的.

通过你的后续评论,我将假设你使用Ehcache作为实现.您引用的描述问题的页面提供了几个解决方案,例如使用BlockingCache作为底层缓存的装饰器. (他们记录这些解决方案的事实暗示Ehcache默认不会处理“雷鸣般的群体”问题.)

BlockingCache似乎是最直接的解决方案,所以我从这开始.以编程方式使用BlockingCache非常简单,但是通过配置使用它会使您需要做更多的工作.您需要通过扩展Ehcache的CacheDecoratorFactory来编写自己的BlockingCacheDecoratorFactory.完成后,您可以在ehcache.xml中为需要它的任何缓存配置它.但要小心这样做;不必要地将缓存转换为BlockingCache可能会对性能产生负面影响.

假设您编写了自己的装饰工厂org.stacker.cache.BlockingCacheDecoratorFactory,并且您有一个名为“adImages”的缓存,您想要保护其免受“雷鸣般的群体”问题的影响.您的新ehcache.xml条目可能如下所示:

查看用户指南http://ehcache.org/documentation/user-guide/cache-decorators,了解Ehcache中的缓存装饰器.我希望这有帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读