ehcache提供三种网络连接策略来实现集群rmi,jgroup还有jms。这里楼主只讲通过RMI的方式来实现:
第一步:配置文件ehcache.xml
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="ehcache.xsd">
<!--采用自动同步缓存的方式,自动同步每台服务器都是一样的配置-->
<cacheManagerPeerProviderFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
properties="peerDiscovery=automatic,
multicastGroupAddress=230.0.0.1,
multicastGroupPort=4446, timeToLive=32" />
<!--配置监听集群中缓存消息的分发-->
<cacheManagerPeerListenerFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
properties="hostName=172.28.28.137 --服务器ip地址,对应你的服务器ip地址
,port=40001,--端口不能变,具体原因我也不知道待研究
socketTimeoutMillis=120000" --连接超时时间
/>
<!--配置所有缓存默认配置-->
<defaultCache maxElementsInMemory="1000" eternal="false"
timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true"
diskSpoolBufferSizeMB="30" maxElementsOnDisk="100000" diskPersistent="false"
diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU">
<cacheEventListenerFactory
class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" />
</defaultCache>
<!--配置缓存-->
<cache name="User" maxElementsInMemory="100" eternal="false"
timeToIdleSeconds="100" timeToLiveSeconds="100" overflowToDisk="false">
<cacheEventListenerFactory
class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" />
</cache>
</ehcache>
第二步:java代码
写缓存代码:
URL url = CacheManage.class.getClassLoader().getResource("ehcache.xml");
CacheManager cacheManage = CacheManager.create(url);
Cache cache =cacheManage .getCache("User");
Element ele = new Element("userId","我是一只小鸟");
cache.put(ele);
取缓存代码:
URL url = CacheManage.class.getClassLoader().getResource("ehcache.xml");
CacheManager cacheManage = CacheManager.create(url);
Cache cache = cacheManage .getCache("User");
String s = cache.get("userId").getValue().toString();
out.print(s);
具体属性什么意思 很多博客都有了我就不说了