运行时的Ehcache缓存大小

运行时的Ehcache缓存大小,第1张

运行时的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



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5616186.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存