读书人

ecache配备rmi

发布时间: 2012-12-28 10:29:05 作者: rapoo

ecache配置rmi
ecache的集群支持多种方式,这里通过RMI实现。

测试方式:

本机,两个不同的进程(java两个不同的工程)



工程1的ehcache.xml


<?xml version="1.0" encoding="UTF-8"?><ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="ehcache.xsd"><cacheManagerPeerProviderFactory/><cacheManagerPeerListenerFactory/><defaultCache maxElementsInMemory="10000" eternal="false"timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true"diskSpoolBufferSizeMB="30" maxElementsOnDisk="10000000"diskPersistent="false" diskExpiryThreadIntervalSeconds="120"memoryStoreEvictionPolicy="LRU"><cacheEventListenerFactory/></defaultCache><cache name="UserCache" maxElementsInMemory="1000" eternal="false"timeToIdleSeconds="100000" timeToLiveSeconds="100000"overflowToDisk="false"><cacheEventListenerFactory/></cache></ehcache>


rmiUrls=//localhost:40000/UserCache (ip+port+缓存名称)
表示本服务缓存数据改变的时候,通知其他服务也更新,可配置多个
properties="hostName=localhost,port=40001,socketTimeoutMillis=120000"
表示本服务监听的一个监听端口,当其他服务的缓存数据改变的时候,就通过其通知服务同步更新数据
工程1的java代码:

package tutorial;import java.net.URL;import java.util.List;import net.sf.ehcache.Cache;import net.sf.ehcache.CacheManager;import net.sf.ehcache.Element;public class UsingCacheCluster { public static void main(String[] args) throws Exception {  URL url = UsingCacheCluster.class.getClassLoader().getResource(    "config/ehcache.xml");  CacheManager manager = new CacheManager(url);  //取得Cache  Cache cache = manager.getCache("UserCache");  int i=0;  while(true) {   //System.out.println("write:"+t);   Element element = new Element("Write"+i, "Write"+i++);   cache.put(element);   Thread.sleep(4500);   List list = cache.getKeys();         for (String str : list) {    System.out.print(str+" || ");   }         System.out.println();  }  //Element element1 = cache.get("key1");  //System.out.println(element1.getValue()); }}


工程2的ehcache.xml配置
只需将工程1的ehcache.xml配置文件中,上面的列举说明的两个属性的端口调换


工程2的java代码:
package tutorial;import java.net.URL;import java.util.List;import net.sf.ehcache.Cache;import net.sf.ehcache.CacheManager;import net.sf.ehcache.Element;public class UsingCacheCluster {public static void main(String[] args) throws Exception {URL url = UsingCacheCluster.class.getClassLoader().getResource("config/ehcache.xml");CacheManager manager = new CacheManager(url);//取得CacheCache cache = manager.getCache("UserCache");String t="";int k = 100;while(true) {Thread.sleep(4500);        cache.put(new Element("read"+k,"read"+k++));        List<String> list = cache.getKeys();        for (String str : list) {System.out.print(str+" || ");}       System.out.println();}}}

读书人网 >编程

热点推荐