`
234390216
  • 浏览: 10238510 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A5ee55b9-a463-3d09-9c78-0c0cf33198cd
Oracle基础
浏览量:462879
Ad26f909-6440-35a9-b4e9-9aea825bd38e
springMVC介绍
浏览量:1775973
Ce363057-ae4d-3ee1-bb46-e7b51a722a4b
Mybatis简介
浏览量:1398730
Bdeb91ad-cf8a-3fe9-942a-3710073b4000
Spring整合JMS
浏览量:395156
5cbbde67-7cd5-313c-95c2-4185389601e7
Ehcache简介
浏览量:680167
Cc1c0708-ccc2-3d20-ba47-d40e04440682
Cas简介
浏览量:531135
51592fc3-854c-34f4-9eff-cb82d993ab3a
Spring Securi...
浏览量:1184996
23e1c30e-ef8c-3702-aa3c-e83277ffca91
Spring基础知识
浏览量:468789
4af1c81c-eb9d-365f-b759-07685a32156e
Spring Aop介绍
浏览量:151486
2f926891-9e7a-3ce2-a074-3acb2aaf2584
JAXB简介
浏览量:68337
社区版块
存档分类
最新评论

Ehcache开启JMX支持

阅读更多

Ehcache提供了基于JMX的监控支持,支持对以下几类信息的监控。

  • CacheManager
  • Cache
  • CacheConfiguration
  • CacheStatistics

按照JMX的规范,为了支持对这几类信息的监控支持,Ehcache分别为它们建立了对应的MBean接口,这些接口都定义在net.sf.ehcache.management包中,分别是CacheManagerMBean、CacheMBean、CacheConfigurationMBean和CacheStatisticsMBean。按照JMX的规范,JMX监控页面只能查看MBean中定义的属性(get方法)和执行MBean接口中定义的操作(方法)。比方说CacheManagerMBean的定义如下,它能看到的属性就是status、name、cacheNames、caches、transactionCommittedCount、transactionRolledBackCount和transactionTimedOutCount。能进行的操作是shutdown()和clearAll()。

public interface CacheManagerMBean {

    /**
     * Gets the status attribute of the Ehcache
     *
     * @return The status value, as a String from the Status enum class
     */
    String getStatus();

    /**
     * Gets the name of the cache manager
     *
     * @return The name of the CacheManager
     */
    String getName();

     /**
     * Shuts down the CacheManager.
     * <p/>
     * If the shutdown occurs on the singleton, then the singleton is removed, so that if a singleton access method
     * is called, a new singleton will be created.
     */
    void shutdown();


    /**
     * Clears  the contents of all caches in the CacheManager, but without
     * removing any caches.
     * <p/>
     * This method is not synchronized. It only guarantees to clear those elements in a cache
     * at the time that the {@link net.sf.ehcache.Ehcache#removeAll()} mehod  on each cache is called.
     */
    void clearAll();


    /**
     * Returns a JMX Cache bean
     *
     */
    Cache getCache(String name);


    /**
     * Gets the cache names managed by the CacheManager
     */
    String[] getCacheNames() throws IllegalStateException;

    /**
     * Gets a list of caches in this CacheManager
     * @return a list of JMX Cache objects
     */
    List getCaches();

    /**
     * Get the committed transactions count
     * @return the committed transactions count
     */
    long getTransactionCommittedCount();

    /**
     * Get the rolled back transactions count
     * @return the rolled back transactions count
     */
    long getTransactionRolledBackCount();

    /**
     * Get the timed out transactions count. Note that only transactions which failed to
     * commit due to a timeout are taken into account
     * @return the timed out transactions count
     */
    long getTransactionTimedOutCount();

}

注册这些MBean,Ehcache提供了一个工具类,ManagementService,可以通过它的registerMBeans方法进行注册,该方法定义如下,后面对应的4个boolean类型的参数,表示是否需要注册对应的MBean,依次表示CacheManager、Cache、CacheConfiguration和CacheStatistics。该工具方法最终会生成一个ManagementService实例,ManagementService实现了CacheManagerEventListener接口,所以它能感知到Cache的变化。

public static void registerMBeans(
    net.sf.ehcache.CacheManager cacheManager,
    MBeanServer mBeanServer,
    boolean registerCacheManager,
    boolean registerCaches,
    boolean registerCacheConfigurations,
    boolean registerCacheStatistics) throws CacheException {
//...
}

以下是一个注册Ehcache对应的MBean的示例代码:

CacheManager cacheManager = new CacheManager();
String cacheName = "test";
Ehcache cache = cacheManager.addCacheIfAbsent(cacheName);
cache.put(new Element("key is a object", "value is a object"));

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

注册之后我们就可以通过jconsole的JMX界面看到对应的MBean的信息了。



 

Ehcache相关的MBean的objectName的命名规范如下:

  • CacheManager - “net.sf.ehcache:type=CacheManager,name=<CacheManager>”
  • Cache - “net.sf.ehcache:type=Cache,CacheManager=<cacheManagerName>,name=<cacheName>”
  • CacheConfiguration - “net.sf.ehcache:type=CacheConfiguration,CacheManager=<cacheManagerName>,name=<cacheName>”
  • CacheStatistics - “net.sf.ehcache:type=CacheStatistics,CacheManager=<cacheManagerName>,name=<cacheName>”

参考文档 http://www.ehcache.org/documentation/2.7/operations/jmx.html

(本文是基于Ehcache2.10.4所写,由Elim写于2017年10月8日)

  • 大小: 8.6 KB
0
0
分享到:
评论

相关推荐

    Ehcache 简单的监控

    Ehcache提供了JMX(Java Management Extensions)支持,允许我们通过JMX客户端工具(如jconsole或VisualVM)来监控缓存的大小、命中率、过期情况等关键指标。此外,Ehcache还提供了一个Web管理界面——`Ehcache Web ...

    EhCache开启gzip压缩功能

    以下是对EhCache开启gzip压缩功能的详细说明。 首先,gzip是一种广泛使用的数据压缩算法,尤其在Web服务器中,它通过压缩HTTP响应内容来减少网络传输的数据量。当用户请求一个页面时,服务器对内容进行gzip压缩,...

    mybatis添加ehcache缓存支持

    在MyBatis 中添加Ehcache 缓存支持,首先需要确保项目采用Maven作为构建工具,因为我们需要在`pom.xml`文件中添加Ehcache的相关依赖。这一步骤包括查找并引入Ehcache的Maven坐标,通常为以下格式: ```xml ...

    Spring Boot中使用EhCache实现缓存支持

    ### Spring Boot中使用EhCache实现缓存支持 #### 概述 在现代软件开发过程中,缓存技术已经成为提升系统性能的重要手段之一。通过减少对底层数据存储的频繁访问,缓存可以有效缓解数据库压力,加快应用响应速度。...

    ehcache详细解读.docx

    8. **JMX支持**:Ehcache默认开启JMX功能,允许通过JMX管理工具监控和管理CacheManager、Cache和CacheConfiguration等MBean,实现远程管理和监控。 9. **安全性**:虽然在描述中未提及,但Ehcache还支持安全配置,...

    EHCache缓存

    8. **JMX 监控**:EHCache 默认开启了 JMX 功能,通过 JMX 可以监控和管理 `CacheManager`、`Cache`、`CacheConfiguration`、`CacheStatistics` 等 MBean,从而实现远程监控和管理缓存状态。 9. **分布式缓存**:从...

    ehcache官方文档2.9

    1. **JMX(Java Management Extensions)**: Ehcache通过JMX提供监控接口,可以查看缓存统计信息、操作缓存等。 2. ** Terracotta Server**: 提供了一个Web管理界面,方便远程管理和监控Ehcache集群。 **七、与其他...

    Ehcache 3(ehcache-clustered-3.8.1-kit.zip)

    在"ehcache-clustered-3.8.1-kit.zip"这个压缩包中,我们重点关注的是Ehcache的集群支持版本,这使得多个节点能够协同工作,共享和同步缓存数据,从而提高系统的可扩展性和可用性。 Ehcache 3 的核心概念包括缓存...

    ehcache-1.2.3.jar 下载

    - **监控和管理**:Ehcache提供了Web管理界面和JMX支持,方便监控和管理缓存状态。 了解Ehcache的这些核心概念和功能,对于开发人员来说,无论是优化性能,还是处理高并发问题,都是非常有价值的。尽管Ehcache已经...

    ehcache2.6.5.rar

    在版本2.6.5中,Ehcache提供了一套完整的缓存解决方案,包括本地缓存、分布式缓存和 Terracotta 集群支持。 Ehcache 2.6.5的关键特性包括: 1. **内存管理**:Ehcache 使用LRU(Least Recently Used)策略来管理...

    ehcache.xsd_ehcache.xml代码提示.rar

    5. 缓存策略:Ehcache支持多种缓存策略,如LRU(Least Recently Used,最近最少使用)、LFU(Least Frequently Used,最不经常使用)以及基于时间的过期策略。开发者可以通过ehcache.xml配置这些策略。 6. 性能优化...

    Ehcache详细解读

    此外,Ehcache集成了JMX(Java Management Extensions),默认启用JMX功能,允许用户通过MBean监控和管理CacheManager和Cache等组件,提供了丰富的监控和管理能力。 总的来说,Ehcache是一个全面的缓存解决方案,集...

    ehcache监控工具ehcache-monitor-kit-1.0.3

    1.解压缩到目录下,复制ehcache-monitor-kit-1.0.0\lib\ehcache-probe-1.0.0.jar包到application的web-inf/lib目录下 2.将以下配置copy的ehcache.xml文件的ehcache标签中,注:上述链接中说的配置少写了个probe包名...

    ehcache.jar及源码

    7. **事件监听(Event Listeners)**:Ehcache支持添加监听器来监控缓存操作,例如缓存项的添加、更新和移除,便于进行相应的业务逻辑处理。 `ehcache-core-2.5.2-sources.jar`则是Ehcache的源代码文件,开发者可以...

    ehcache

    Ehcache 支持分布式缓存,通过 Terracotta 服务器实现跨节点的数据共享。这样,多台服务器上的应用可以共享同一份缓存,提高系统的可扩展性和性能。 ## 6. Ehcache 的升级与优化 随着技术的发展,Ehcache 也经历了...

    ehcache知识简介

    - **标准参与**:Ehcache的维护者Greg Luck也是JSR107专家委员会成员,这意味着Ehcache在标准支持方面有着得天独厚的优势。 ##### 5. 可扩展性 - **监听器插件化**:通过实现CacheManagerEventListener和...

    Mybatis入门实例(二)——添加ehcache缓存支持

    在本篇《Mybatis入门实例(二)——添加ehcache缓存支持》中,我们将深入探讨如何在Mybatis框架中集成Ehcache作为二级缓存,以提高数据访问的效率和性能。Ehcache是一个开源的Java分布式缓存,广泛用于缓存应用程序中...

    ehcache资料(包含ehcache jar包)

    1. **内存管理**:Ehcache支持将数据存储在内存中,以实现快速访问。它通过分段技术来管理内存,每个段都有独立的锁,从而提高并发性能。 2. **磁盘存储**:当内存空间不足时,Ehcache可以将部分数据溢写到硬盘上,...

    ehcache1.4.0

    - **JMX(Java Management Extensions)支持**:Ehcache 1.4.0可以通过JMX进行监控和管理,查看缓存的性能指标和状态。 总的来说,Ehcache 1.4.0提供了一个强大且灵活的缓存解决方案,适用于各种Java应用。通过...

    ehcache-3.3.1-API文档-中文版.zip

    赠送jar包:ehcache-3.3.1.jar; 赠送原API文档:ehcache-3.3.1-javadoc.jar; 赠送源代码:ehcache-3.3.1-sources.jar; 赠送Maven依赖信息文件:ehcache-3.3.1.pom; 包含翻译后的API文档:ehcache-3.3.1-javadoc-...

Global site tag (gtag.js) - Google Analytics