栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

运行时的Ehcache缓存大小

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

运行时的Ehcache缓存大小

是的,使用Ehcache,您可以配置缓存并仅通过Java代码(没有XML配置)来检索其大小。集成所有内容的确切方法取决于您的特定体系结构。我将假设Jersey从事API事务,Guice进行依赖注入。

定义缓存

通过依赖项注入使您的缓存管理器可用。这可以通过Guice模块完成:

@Provides@SingletonCacheManager provideCacheManager() {  CacheManager cacheManager = CacheManager.create();    CacheConfiguration config = new CacheConfiguration("mycache", 100)    .timeToLiveSeconds(60)    .timeToIdleSeconds(30)    .statistics(true);  Cache myCache = new Cache(config);  cacheManager.addCacheIfAbsent(myCache);  return cacheManager;}

请注意,已打开的统计信息

mycache

同样,使用缓存可以完全用Java代码完成,但要取决于您的体系结构和设计。通常,我使用方法拦截(通过AOP)来执行此操作,但这是另一个主题。

通过REST API获取缓存统计信息

鉴于您

CacheManager
可以通过依赖项注入进行访问,则可以将其连接到REST端点并允许访问缓存统计信息:

@Path("stats")@Produces("text/plain")public class StatsResource {  @Inject private CacheManager cacheManager;  @GET  public String stats() {    StringBuffer sb = StringBuffer();        for (String name : cacheManager.getCacheNames()) {      Cache cache = cacheManager.getCache(name);      Statistics stats = cache.getStatistics();      sb.append(String.format("%s: %s objects, %s hits, %s missesn",        name,        stats.getObjectCount(),        stats.getCacheHits(),        stats.getCacheMisses()      ));    }    return sb.toString();  }}

现在,您可以通过REST调用获取有关缓存的信息:

GET /statsHTTP/1.1 200 OKContent-Type: text/plain; charset=utf-8mycache: 8 objects, 59 hits, 12 misses

JMX呢?

使用Ehcache可以很容易地在MBean服务器上注册缓存管理器。可以用Java代码完成。更新您的Guice模块,将您注册

cacheManager
到系统
MBeanServer

MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();ManagementService.registerMBeans(cacheManager, mBeanServer, false, false, false, true);

现在,您可以将JConsole附加到Java进程,并在MBean中找到缓存统计信息

net.sf.ehcache.CacheStatistics



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/610057.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号