`

Ehcache 分布式缓存 配置完全指北

阅读更多

自从Ehcache 到了1.2+的版本,就支持分布式缓存了。我们考虑到Spring + Hibernate的结构 ,ehcache的对这几个框架的支持较好,就一直采用这个缓存方案。
地址:http://ehcache.sourceforge.net/

先介绍没有分布式缓存需求的配置:
1.先下载ehcache的jar包。download
最新版本 11 June 2007: ehcache-1.3 released。
解压后,有几个文件:
ehcache-1.3.0.jar:需要将它放置到WEB-INF/lib下
ehcache-1.3.0-remote-debugger.jar:不要发布到你的工程中,是用来调试和监控你的cache状况的
ehcache-1.3.0-sources.jar:源代码
ehcache.xml :重要的配置文件,需要复制到classpath下 。
2.ehcach.xml配置文件主要参数的解释,其实文件里有详细的英文注释


//DiskStore 配置,cache文件的存放目录 ,主要的值有
*user.home - 用户主目录
* user.dir - 用户当前的工作目录
* java.io.tmpdir - Default temp file path默认的temp文件目录

//强制默认的cache配置

<defaultCache
            
maxElementsInMemory="10000"
            
eternal="false"
            
timeToIdleSeconds="120"
            
timeToLiveSeconds="120"
            
overflowToDisk="true"
            
diskSpoolBufferSizeMB="30"
            
maxElementsOnDisk="10000000"
            
diskPersistent="false"
            
diskExpiryThreadIntervalSeconds="120"
            
memoryStoreEvictionPolicy="LRU"
            
/>

必须属性:
name:设置缓存的名称,用于标志缓存,惟一
maxElementsInMemory:在内存中最大的对象数量
maxElementsOnDisk:在DiskStore中的最大对象数量,如为0,则没有限制
eternal:设置元素是否永久的,如果为永久,则timeout忽略
overflowToDisk:是否当memory中的数量达到限制后,保存到Disk

可选的属性:
timeToIdleSeconds:设置元素过期前的空闲时间
timeToLiveSeconds:设置元素过期前的活动时间
diskPersistent:是否disk store在虚拟机启动时持久化。默认为false
diskExpiryThreadIntervalSeconds:运行disk终结线程的时间,默认为120秒
memoryStoreEvictionPolicy:策略关于Eviction

缓存子元素:
cacheEventListenerFactory:注册相应的的缓存监听类,用于处理缓存事件,如put,remove,update,和expire
bootstrapCacheLoaderFactory:指定相应的BootstrapCacheLoader,用于在初始化缓存,以及自动设置。

3.分布式缓存配置方法 是基于RMI方式的
在cache.xml(ehcache的配置文件)中加入

<cacheManagerPeerProviderFactory
        
class="net.sf.ehcache.distribution
.RMICacheManagerPeerProviderFactory
"
        
properties="peerDiscovery=automatic,
multicastGroupAddress=230.0.0.1, multicastGroupPort=4446
"/>
<cacheManagerPeerListenerFactory
        
class="net.sf.ehcache.distribution.
RMICacheManagerPeerListenerFactory
"/>

//自动查找局域网中分布式的peer 。也可以手工指定节点的地址的,如:
peerDiscovery=manual,rmiUrls=//server1:40000/sampleCache1

另外在每个cache属性中加入

<cacheEventListenerFactory
class="net.sf.ehcache.distribution.
RMICacheReplicatorFactory
"/>

例如:

  1. <cache name="a"
  2.      maxElementsInMemory="10000"
  3.      eternal="true"
  4.      overflowToDisk="true">
  5.      <cacheEventListenerFactory
  6. class="net.sf.ehcache.distribution.
  7. RMICacheReplicatorFactory"/>
  8. </cache>

还有几个不错的cache的还是准备7研究一下的:


Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。
Memcached由Danga Interactive开发,用于提升LiveJournal.com访问速度的。LJ每秒动态页面访问量几千次,用户700万。Memcached将数据库负载大幅度降低,更好的分配资源,更快速访问。

SwarmCache是一个简单而功能强大的分布式缓存机制。它使用IP组播来有效地在缓存的实例之间进行通信。它是快速提高集群式Web应用程序的性能的理想选择。

Open Terracotta 一个JVM级的开源群集框架,提供:HTTP Session复制,分布式缓存,POJO群集,跨越群集的JVM来实现分布式应用程序协调(采用代码注入的方式,所以你不需要修改任何)。

JBossCache是一个复制的事务处理缓存,它允许你缓存企业级应用数据来更好的改善性能。缓存数据被自动复制,让你轻松进行Jboss服务器 之间的集群工作。JBossCache能够通过Jboss应用服务或其他J2EE容器来运行一个Mbean服务,当然,它也能独立运行。 JBossCache包括两个模块:TreeCache和TreeCacheAOP。 TreeCache –是一个树形结构复制的事务处理缓存。 TreeCacheAOP –是一个“面向对象”缓存,它使用AOP来动态管理POJO

OSCache标记库由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。 OSCache是个一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决方案。OSCache有以下特 点:缓存任何对象,你可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存。拥有全面的API–OSCache API给你全面的程序来控制所有的OSCache特性。永久缓存–缓存能随意的写入硬盘,因此允许昂贵的创建(expensive-to-create) 数据来保持缓存,甚至能让应用重启。支持集群–集群缓存数据能被单个的进行参数配置,不需要修改代码。缓存记录的过期–你可以有最大限度的控制缓存对象的 过期,包括可插入式的刷新策略(如果默认性能不需要时)。

 

分享到:
评论
1 楼 wokeke 2011-06-28  
谢谢,收下了

相关推荐

    Ehcache分布式缓存与其在SpringBoot应用

    Ehcache 是一种广泛使用的开源 Java 分布式缓存。主要面向通用缓存,Java EE 和轻量级容器。它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个 gzip 缓存 servlet 过滤器,支持 REST 和 SOAP api...

    ehcache分布式缓存实例

    java ehcache分布式缓存实例 RMI方式实现.

    Ehcache分布式缓存与其在spring中的使用

    主要讲解下encache的原理、分布式缓存集群环境配置、与在spring中的使用

    Ehcache分布式缓存入门案例demo_文件转树结构_

    Ehcache分布式缓存入门案例demo,简单易用上手快,帮助您快速解决应用中的单体缓存问题,提高系统响应速度。

    基于JGROUPS的ehcache的分布式缓存复制

    NULL 博文链接:https://wiselyman.iteye.com/blog/2114715

    Ehcache分布式缓存NoSQL深入浅出

    Ehcache是Java语言编写使用最广的分布式缓存。本套课程讲解全新的Ehcache?3.1版本,内容全面实用。涵盖缓存分层、缓存过期和剔除策略、缓存层序列化、多种缓存使用模式、事件监听器、XA事务、分布式缓存集群。

    分布式缓存.docx

    介绍ehcache做jvm缓存,ehcache做分布式缓存,redis做分布式缓存,redis分片集群,redis哨兵,redis基本数据,redis主从复制,redis和ehcache的二级缓存,redis雪崩效应,redis缓存穿透(整个环境搭建基于Centos,代码...

    EhCache用户指南(分布式缓存)

    超好的东西,分布式缓存所需配置都在里面,感谢为我们翻译的大牛~~

    SpringShiro分布式缓存版

    -- 配置ehcache缓存,如果是本机,没分布式的话,可以考虑就选择ehcache缓存 --&gt; &lt;!-- 如果有多台机子的话,可以考虑部署redis分布式缓存.. --&gt; &lt;/bean&gt; &lt;!-- 用户授权信息Cache, 采用EhCache,需要的话就配置...

    分布式缓存EhCache用户指南.docx

    从 1.2 版本开始,Ehcache 可以使用分布式的缓存了。 分布式这个特性是以 plugin 的方式实现的。Ehcache 自带了一些默认的分布式缓存插件实现,这些插件可以满足大部分应用的需要。如果需要使用其他的插件那就需要...

    异步复制与同步复制 以及ehcache的小tips和我的配置

    异步复制与同步复制 以及ehcache的小tips和我的配置

    EHCache 分布式配置文件

    NULL 博文链接:https://shikonglaike.iteye.com/blog/1544803

    ehcache项目缓存技术

    ehcache项目缓存技术 ,大量用户需要访问主页的解决方案,缓存解决频繁操作某些数据的时候可能用到

    ehcache页面缓存技术

    ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache...

    ehcache2.6.6缓存相关jar

    做ehcache分布式缓存用的! ehcache-2.6.6.jar和terracotta-toolkit-1.6-runtime-5.5.0.jar 主要是给自己写的博客中做一个下载资源链接!

    基于java的开发源码-Ehcache Java 缓存框架.zip

    基于java的开发源码-Ehcache Java 缓存框架.zip 基于java的开发源码-Ehcache Java 缓存框架.zip 基于java的开发源码-Ehcache Java 缓存框架.zip 基于java的开发源码-Ehcache Java 缓存框架.zip 基于java的开发源码-...

    ehcache集群缓存配置

    ehcache提供三种网络连接策略来实现集群,rmi,jgroup还有jms。这里只说rmi方式。同时ehcache可以可以实现多播的方式实现集群。也可以手动指定集群主机序列实现集群,本例应用手动指定。

    分布式缓存架构11.docx

    ehcache集群

    Ehcache2缓存区配置详解.pdf

    Ehcache2缓存区配置详解.pdf

    Ehcache Java 缓存框架 v3.6.1

    EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。主要的特性有:1. 快速.2. 简单.3. 多种缓存策略4. 缓存数据有两级:内存和磁盘,因此无需担心容量问题5. 缓存...

Global site tag (gtag.js) - Google Analytics