`
lzg406
  • 浏览: 61267 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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
		class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
		properties="peerDiscovery=manual, 
        rmiUrls=//localhost:40000/UserCache" />

	<cacheManagerPeerListenerFactory
		class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
		properties="hostName=localhost,port=40001,socketTimeoutMillis=120000" />

	<defaultCache maxElementsInMemory="10000" eternal="false"
		timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true"
		diskSpoolBufferSizeMB="30" maxElementsOnDisk="10000000"
		diskPersistent="false" diskExpiryThreadIntervalSeconds="120"
		memoryStoreEvictionPolicy="LRU">
		<cacheEventListenerFactory
			class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" />
	</defaultCache>

	<cache name="UserCache" maxElementsInMemory="1000" eternal="false"
		timeToIdleSeconds="100000" timeToLiveSeconds="100000"
		overflowToDisk="false">
		<cacheEventListenerFactory
			class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" />
	</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(
    &quot;config/ehcache.xml&quot;);
  CacheManager manager = new CacheManager(url);
  //取得Cache
  Cache cache = manager.getCache(&quot;UserCache&quot;);
  int i=0;
  while(true) {
   //System.out.println(&quot;write:&quot;+t);
   Element element = new Element(&quot;Write&quot;+i, &quot;Write&quot;+i++);
   cache.put(element);
   Thread.sleep(4500);
   List list = cache.getKeys();
         for (String str : list) {
    System.out.print(str+&quot; || &quot;);
   }
         System.out.println();
  }

  //Element element1 = cache.get(&quot;key1&quot;);
  //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);
		//取得Cache
		Cache 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();
		}
	}

}
分享到:
评论

相关推荐

    Ehcache RMI Replicated Cluster(RMI集群)

    这通常在Ehcache配置文件或初始化代码中完成。 5. **处理缓存事件**:当缓存中的数据发生变化时,如添加、删除或更新项,Ehcache会触发相应的事件。在RMI集群中,这些事件会被传播到其他节点,以保持数据的一致性。...

    ehcache rmi集群demo

    在这个“ehcache rmi集群demo”中,我们将探讨如何将Ehcache与RMI结合,实现一个跨节点的缓存集群。 首先,Ehcache的核心概念包括缓存管理器(Cache Manager)、缓存(Cache)、缓存项(Cache Entry)等。缓存管理...

    RMI+EHCACHE Demo

    1. **Ehcache配置**:如何设置Ehcache配置文件(如ehcache.xml),定义缓存区域、大小限制、缓存策略等。 2. **RMI接口与实现**:定义远程接口,实现接口中的业务逻辑,并进行必要的RMI注解。 3. **服务器端代码**:...

    ehcache配置使用详解

    ### ehcache配置使用详解 #### 一、ehcache概述与特性 **背景介绍:** 缓存作为提升系统响应速度和降低数据库压力的关键技术,在现代软件架构中占据着重要位置。ehcache,作为一款高性能的开源Java缓存框架,旨在...

    集群环境中使用_EhCache_缓存系统&Ehcache配置文件的详细说明

    三、EhCache配置文件详解 EhCache的配置主要通过`ehcache.xml`文件进行。以下是一些关键配置元素: 1. `&lt;cache&gt;`元素:定义一个缓存区域,包括缓存名称、最大元素数、内存和磁盘存储策略等。例如: ```xml ...

    Ehcache配置及说明.docx

    ### Ehcache配置与集群解决方案深度解析 #### 缓存系统简介与Ehcache特性 Ehcache是一款高效、轻量级的Java缓存框架,以其卓越的性能和灵活性著称,成为众多Java应用中首选的缓存解决方案。作为Hibernate默认的...

    ehcache分布式缓存实例

    1. 创建Ehcache配置:定义缓存的大小、存活时间、过期时间等参数,并配置分布式缓存的设置,例如启用RMI通信。 2. 初始化缓存管理器:每个节点都需要一个CacheManager实例,负责管理所有的缓存。在初始化时,需要...

    Ehcache集群实例

    - 在Ehcache配置中指定JGroups配置文件路径,如`&lt;cache&gt;&lt;cluster&gt;&lt;jgroups-config-file&gt;path/to/jgroups.xml&lt;/jgroups-config-file&gt;&lt;/cluster&gt;&lt;/cache&gt;`。 - 初始化Ehcache时,它会使用JGroups配置来启动集群服务...

    ecache RMI manual

    在配置 Ehcache RMI 手动发现时,需要在每个节点的配置文件(通常为 ehcache.xml)中设置 `rmiServerHost` 和 `rmiServerPort` 属性,用于标识该节点对外提供的 RMI 服务。同时,也需要设置 `rmiClientHost` 和 `...

    Ehcache缓存配置.doc

    然而,这个部分在提供的内容中未给出完整的配置示例,通常会包含如`rmiServerHost`、`rmiServerPort`等属性,以便Ehcache节点间相互通信。 总结来说,Ehcache的配置是其强大功能的关键,允许开发者根据应用需求定制...

    ehcache集群方案

    3. **JGroups配置**:为了使Ehcache集群正常工作,需要对JGroups进行适当的配置。这包括设置组名、选择适合的传输协议(如TCP或UDP)、配置消息确认机制等。正确的配置有助于优化网络通信,提高数据同步效率。 4. *...

    ehcache缓存的配置

    #### 二、ehcache配置文件结构 ehcache 的配置主要通过 XML 文件实现,通常命名为 `ehcache.xml`,放置于项目的类路径(classpath)下。以下是一个典型的 `ehcache.xml` 配置示例: ```xml &lt;ehcache xmlns:xsi=...

    Ehcache2缓存区配置详解.pdf

    ### Ehcache2缓存区配置详解 #### 一、Ehcache概述 Ehcache,一个备受推崇的开源高速缓存系统,专为提升应用程序性能、减轻数据库负担及简化应用扩展设计。其卓越的稳定性和丰富的特性使其成为Java领域内最受欢迎...

    Ehcache 简单的监控

    上述配置会启用RMI事件监听器,提供统计信息。 标签中的“源码”提示我们,Ehcache的源代码也是学习和调试的重要资源。通过阅读源码,我们可以深入了解其内部工作流程,如缓存的加载、替换策略、同步机制等。对于...

    ehcache集群缓存配置

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

    ehcache-core-2.5.2 lib + Sample cache配置

    **Ehcache Core 2.5.2:基础与Sample Cache配置详解** Ehcache是一款高效、开源的Java缓存库,广泛应用于提高应用程序性能,减少数据库负载。在这个压缩包中,我们关注的是Ehcache的核心组件ehcache-core-2.5.2,...

    EHcache相关jar下载及案例

    6. **分布式缓存**:通过RMI或JGroups等技术,EHcache可以实现跨节点的数据共享,这对于分布式系统来说非常关键。 在实践中,配置EHcache通常涉及以下步骤: 1. 添加EHcache的依赖到项目中,这可以通过Maven或...

    ecacheRMIManual集群示例

    - **配置Ehcache**:在每个节点的Ehcache配置文件(如`ehcache.xml`)中,指定RMI主机和端口,并启用集群模式。设置`&lt;distributed-cache&gt;`元素以声明该缓存应被分布,并配置`&lt;rmi-client-listener&gt;`监听器来发现...

    ehcache缓存demo

    对于分布式环境,Ehcache支持RMI和Terracotta服务器,使多个节点共享同一缓存。这需要额外的配置和设置,但能实现高可用性和容错性。 通过这个简单的"ehcache-demo"项目,你可以了解到Ehcache的基本用法,包括配置...

    ehcacheRMI实例

    在压缩包文件E1中,可能包含了实现Ehcache RMI同步的相关代码示例、配置文件以及可能的部署指南。深入研究这些文件,可以帮助你更好地理解和实施Ehcache RMI实例。为了确保正确运行,记得按照文件中的说明进行配置,...

Global site tag (gtag.js) - Google Analytics