`
阅读更多

Ehcache支持的分布式缓存支持有三种RMI,JGroups,JMS,这里介绍下MRI和JGrpups两种方式,Ehcache使用版本为1.5.0,关于ehcache的其他信息请参考http://ehcache.sourceforge.net/EhcacheUserGuide.html,关于jgroups的信息请参考http://www.jgroups.org/manual/html_single/index.html。

 

环境为两台机器 server1 ip:192.168.2.154,server2 ip:192.168.2.23

 

1. RMI方式:

rmi的方式配置要点(下面均是server1上的配置,server2上的只需要把ip兑换即可)

 

a. 配置PeerProvider:

 

Xml代码 
  1. <cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"   
  2. properties="peerDiscovery=manual,rmiUrls=//192.168.2.23:40001/userCache|//192.168.2.23:40001/resourceCache" />  

配置中通过手动方式同步sever2中的userCache和resourceCache。

 

b. 配置CacheManagerPeerListener:

 

Xml代码 
  1. <cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"   
  2. properties="hostName=192.168.2.154, port=40001,socketTimeoutMillis=2000" />  

 配置中server1监听本机40001端口。

 

c. 在每一个cache中添加cacheEventListener,例子如下:

 

Xml代码 
  1. <cache name="userCache" maxElementsInMemory="10000" eternal="true" overflowToDisk="true" timeToIdleSeconds="0" timeToLiveSeconds="0" diskPersistent="false" diskExpiryThreadIntervalSeconds="120">  
  2.         <cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"     properties="replicateAsynchronously=true, replicatePuts=true, replicateUpdates=true,replicateUpdatesViaCopy= false, replicateRemovals= true " />  
  3. </cache>  
 

2. JGroups方式:

ehcache 1.5.0之后版本支持的一种方式,配置起来比较简单,要点:

 

a. 配置PeerProvider,使用tcp的方式,例子如下:

 

Xml代码 
  1. <cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"  
  2.         properties="connect=TCP(start_port=7800):  
  3.         TCPPING(initial_hosts=192.168.2.154[7800],192.168.2.23[7800];port_range=10;timeout=3000;  
  4.         num_initial_members=3;up_thread=true;down_thread=true):  
  5.         VERIFY_SUSPECT(timeout=1500;down_thread=false;up_thread=false):  
  6.         pbcast.NAKACK(down_thread=true;up_thread=true;gc_lag=100;retransmit_timeout=3000):  
  7.         pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;shun=false;  
  8.         print_local_addr=false;down_thread=true;up_thread=true)"   
  9.         propertySeparator="::" />  

 b.为每个cache添加cacheEventListener:

 

Xml代码 
  1. <cache name="userCache" maxElementsInMemory="10000" eternal="true"  
  2.         overflowToDisk="true" timeToIdleSeconds="0" timeToLiveSeconds="0"  
  3.         diskPersistent="false" diskExpiryThreadIntervalSeconds="120">  
  4.         <cacheEventListenerFactory class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"  
  5.             properties="replicateAsynchronously=truereplicatePuts=true,  
  6.                 replicateUpdates=truereplicateUpdatesViaCopy=falsereplicateRemovals=true"/>  
  7. </cache>  

 JGroup方式配置的两个server上的配置文件一样,若有多个server,在initial_hosts中将server ip加上即可。

一个完整的ehcache.xml文件:

Xml代码 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  3.     xsi:noNamespaceSchemaLocation="http://ehcache.sf.net/ehcache.xsd">  
  4.     <diskStore path="java.io.tmpdir" />  
  5.   
  6.     <cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"  
  7.         properties="connect=TCP(start_port=7800):  
  8.         TCPPING(initial_hosts=192.168.2.154[7800],192.168.2.23[7800];port_range=10;timeout=3000;  
  9.         num_initial_members=3;up_thread=true;down_thread=true):  
  10.         VERIFY_SUSPECT(timeout=1500;down_thread=false;up_thread=false):  
  11.         pbcast.NAKACK(down_thread=true;up_thread=true;gc_lag=100;retransmit_timeout=3000):  
  12.         pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;shun=false;  
  13.         print_local_addr=false;down_thread=true;up_thread=true)"   
  14.         propertySeparator="::" />  
  15.   
  16.     <defaultCache maxElementsInMemory="10000" eternal="true"  
  17.         overflowToDisk="true" timeToIdleSeconds="0" timeToLiveSeconds="0"  
  18.         diskPersistent="false" diskExpiryThreadIntervalSeconds="120">  
  19.         <cacheEventListenerFactory class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"  
  20.             properties="replicateAsynchronously=truereplicatePuts=true,  
  21.                 replicateUpdates=truereplicateUpdatesViaCopy=falsereplicateRemovals=true"/>  
  22.     </defaultCache>  
  23.   
  24.     <cache name="velcroCache" maxElementsInMemory="10000" eternal="true"  
  25.         overflowToDisk="true" timeToIdleSeconds="0" timeToLiveSeconds="0"  
  26.         diskPersistent="false" diskExpiryThreadIntervalSeconds="120">  
  27.         <cacheEventListenerFactory class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"  
  28.             properties="replicateAsynchronously=truereplicatePuts=true,  
  29.                 replicateUpdates=truereplicateUpdatesViaCopy=falsereplicateRemovals=true"/>  
  30.     </cache>  
  31.     <cache name="userCache" maxElementsInMemory="10000" eternal="true"  
  32.         overflowToDisk="true" timeToIdleSeconds="0" timeToLiveSeconds="0"  
  33.         diskPersistent="false" diskExpiryThreadIntervalSeconds="120">  
  34.         <cacheEventListenerFactory class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"  
  35.             properties="replicateAsynchronously=truereplicatePuts=true,  
  36.                 replicateUpdates=truereplicateUpdatesViaCopy=falsereplicateRemovals=true"/>  
  37.     </cache>   
<cache name="resourceCache" maxElementsInMemory="10000"  
        eternal="true" overflowToDisk="true" timeToIdleSeconds="0"  
        timeToLiveSeconds="0" diskPersistent="false"  
        diskExpiryThreadIntervalSeconds="120">  
        <cacheEventListenerFactory class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"  
            properties="replicateAsynchronously=true, replicatePuts=true,  
                replicateUpdates=true, replicateUpdatesViaCopy=false, replicateRemovals=true"/>  
    </cache>  
</ehcache>  
 



分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    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-...

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

    Ehcache是一个高性能的、基于Java的进程内缓存解决方案,它被广泛应用于各种Java应用程序,包括Java EE和轻量级容器。Ehcache的主要优势在于它的快速响应、易用性和丰富的缓存策略。它提供了两种级别的缓存存储:...

    ehcache.jar及源码

    Ehcache是一个广泛使用的开源Java缓存库,它为应用程序提供了高效的内存管理和数据缓存功能。Ehcache的核心目标是提高应用性能,通过将频繁访问的数据存储在内存中,减少对数据库的依赖,从而降低系统负载。这次我们...

    ehcache-3.9.9-API文档-中英对照版.zip

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

    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.xsd_ehcache.xml代码提示.rar

    【标题解析】:“ehcache.xsd_ehcache.xml代码提示.rar”这个标题表明这是一个与Ehcache缓存系统相关的资源包,主要目的是为Ehcache的配置文件ehcache.xml提供代码提示功能。Ehcache是一个广泛使用的开源Java缓存...

    EHcache相关jar下载及案例

    EHcache是一款广泛使用的开源Java分布式缓存系统,主要设计用于提高应用程序的性能和可伸缩性。在Java应用程序中,特别是那些基于Hibernate或MyBatis的持久层框架中,EHcache作为二级缓存工具,能够显著提升数据访问...

    ehcache-core-2.6.11-API文档-中英对照版.zip

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

    Ehcache 简单的监控

    Ehcache是一个开源的、高性能的缓存解决方案,广泛应用于Java应用程序中,以提高数据访问的速度和效率。本文将深入探讨Ehcache的简单监控,帮助开发者更好地理解其工作原理和性能状态。 首先,了解Ehcache的核心...

    SpringBoot 集成Ehcache实现缓存

    ### Spring Boot集成Ehcache实现缓存 #### 一、Ehcache简介 Ehcache是一个高效的纯Java进程内缓存框架,以其快速且轻便的特点而被广泛应用于各种应用场景中,尤其在Java EE和轻量级容器环境中更是受到青睐。...

    ehcache的配置参数详解

    ehcache是一种广泛使用的Java缓存框架,用于提高应用程序性能,特别是在数据访问操作中。通过将数据存储在内存中,ehcache能够显著减少数据库查询次数,从而加快应用响应速度。本文将深入探讨ehcache.xml配置文件中...

    spring + ehcache + redis两级缓存

    当我们谈论“Spring + Ehcache + Redis”两级缓存时,我们实际上是在讨论如何在Java环境中利用Spring框架来集成Ehcache作为本地缓存,并利用Redis作为分布式二级缓存,构建一个高效且可扩展的缓存解决方案。...

    ehcache缓存的jar包和配置文件

    Ehcache是一个流行的Java缓存库,用于在应用程序中存储数据,以提高性能并减少对数据库的访问。它被广泛应用于各种系统,特别是在处理大量数据和需要快速响应时间的应用中。下面将详细介绍Ehcache的核心概念、配置...

    Ehcache通过Jgroups做集群

    Ehcache是一款高效、流行的Java缓存库,它允许应用程序快速访问经常使用的数据,从而提高性能和响应速度。在分布式环境中,为了实现数据共享和高可用性,Ehcache提供了集群功能。而Jgroups则是Java中一个强大的集群...

    cache/ehcache缓存使用

    本文将详细讲解"cache/ehcache缓存使用"的相关知识点,包括缓存的基本概念、Ehcache的介绍、以及如何在Java应用中使用Ehcache进行缓存操作。 首先,我们要理解什么是缓存。缓存是一种存储技术,它临时存储常用或...

    借助Ehcache缓存框架实现对页面的缓存Demo

    本工程用于研究如何借助Ehcache缓存框架实现对页面的缓存 本工程编码方式:UTF-8 本工程开发工具:MyEclipse 说明: 1、ehcache.xml和ehcache.xsd两个文件可以在下在下载下来的名为“ehcache-core-x.x.x-...

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

    Ehcache 3 是一个广泛使用的开源Java缓存解决方案,特别是在需要高性能、低延迟的数据存储和检索场景下。Ehcache 3 提供了丰富的功能,包括本地内存缓存、磁盘持久化、多线程支持以及在分布式环境中实现集群共享缓存...

    mybatis ehcache 1.0 ehcache.xsd 提示文件

    本篇文章将详细探讨MyBatis与Ehcache的集成以及`ehcache.xsd`和`ehcache.xml`这两个配置文件在其中的作用。 首先,Ehcache是一个开源的、高性能的Java缓存库,它能够极大地减少对数据库的访问,提高应用程序的响应...

    ehcache2.6.5.rar

    Ehcache是一个开源的Java缓存库,广泛用于提高应用程序的性能和响应速度,通过存储经常访问的数据在内存中,避免了频繁的数据库查询。它最初由Tomi Triebel开发,现在是Terracotta公司的产品。在版本2.6.5中,...

Global site tag (gtag.js) - Google Analytics