`
shuai1234
  • 浏览: 972441 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

EhCache JGroups 集群模式

    博客分类:
  • java
 
阅读更多
EhCache 从 1.5. 版本开始增加了 JGroups 的分布式集群模式。与 RMI 方式相比较, JGroups 提供了一个非常灵活的协议栈、可靠的单播和多播消息传输,主要的缺点是配置复杂以及一些协议栈对第三方包的依赖。

JGroups 也提供了基于 TCP 的单播 ( Unicast ) 和基于 UDP 的多播 ( Multicast ) ,对应 RMI 的手工配置和自动发现。使用单播方式需要指定其它节点的主机地址和端口,下面是两个节点,并使用了单播方式的配置:

 

[html] view plain copy
 
 print?
  1. <!-- 使用单播方式配置 -->  
  2.     <cacheManagerPeerProviderFactory  
  3.         class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"  
  4.         properties="connect=TCP(bind_addr=127.0.0.1;bind_port=4000):  
  5.                             TCPPING(initial_hosts=127.0.0.1[4000],127.0.0.1[5000];port_range=1;timeout=5000;num_initial_members=2):  
  6.                             MERGE2(min_interval=3000;max_interval=5000):  
  7.                             FD_ALL(interval=5000;timeout=20000):  
  8.                             FD(timeout=5000;max_tries=48;):  
  9.                             VERIFY_SUSPECT(timeout=1500):  
  10.                             pbcast.NAKACK(retransmit_timeout=100,200,300,600,1200,2400,4800;discard_delivered_msgs=true):  
  11.                             pbcast.STABLE(stability_delay=1000;desired_avg_gossip=20000;max_bytes=0):  
  12.                             pbcast.GMS(print_local_addr=true;join_timeout=5000)"  
  13.         propertySeparator="::" />  

 

使用多播方式配置如下:

 

[html] view plain copy
 
 print?
  1. <cacheManagerPeerProviderFactory  
  2.        class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"  
  3.        properties="connect=UDP(mcast_addr=224.1.1.1;mcast_port=45678;ip_ttl=32;mcast_send_buf_size=120000;mcast_recv_buf_size=80000):   
  4.        PING(timeout=2000;num_initial_members=2):   
  5.        MERGE2(min_interval=5000;max_interval=10000):   
  6.        FD_SOCK:VERIFY_SUSPECT(timeout=1500):   
  7.        pbcast.NAKACK(retransmit_timeout=3000):   
  8.        UNICAST(timeout=5000):   
  9.        pbcast.STABLE(desired_avg_gossip=20000):   
  10.        FRAG:   
  11.        pbcast.GMS(join_timeout=5000;print_local_addr=true)"  
  12.        propertySeparator="::" />   
cache缓存节点配置

 

 

[html] view plain copy
 
 print?
  1. <!-- demo缓存 -->  
  2.     <cache name="demoCache" maxElementsInMemory="1000" eternal="false"  
  3.         timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true"  
  4.         diskSpoolBufferSizeMB="30" maxElementsOnDisk="10000000"  
  5.         diskPersistent="false" diskExpiryThreadIntervalSeconds="120"  
  6.         memoryStoreEvictionPolicy="LRU">  
  7.         <cacheEventListenerFactory  
  8.             class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"  
  9.             properties="replicateAsynchronously=truereplicatePuts=true,  
  10.         replicateUpdates=truereplicateUpdatesViaCopy=falsereplicateRemovals=true/>  
  11.         <!-- 用于在初始化缓存,以及自动设置 -->  
  12.         <bootstrapCacheLoaderFactory  
  13.             class="net.sf.ehcache.distribution.jgroups.JGroupsBootstrapCacheLoaderFactory" />  
  14.     </cache>  
详情参考demo源码:http://download.csdn.net/detail/tianwei7518/9231745
需要引入依赖:

 

 

[html] view plain copy
 
 print?
  1. <dependency>  
  2.             <groupId>net.sf.ehcache</groupId>  
  3.             <artifactId>ehcache-jgroupsreplication</artifactId>  
  4.             <version>1.7</version>  
  5.         </dependency>  

 

参考文章:

1.EhCache集群方案-JGroups
2.ehcache配置文件译文 
3.EhCache集群 

 
 
分享到:
评论

相关推荐

    Ehcache通过Jgroups做集群

    在Ehcache通过Jgroups进行集群配置时,首先需要理解Jgroups的配置文件——`jgroups.xml`。这个文件定义了集群中节点如何相互发现、通信以及故障检测的规则。配置文件中的关键元素包括: 1. **Transport**: 定义了...

    EHCACHE集群配置-JGroup篇

    EHCAHCE基于JGROUP的集群配置方案,内含相关配置文件,及配置说明

    ehcache集群

    2. **配置Ehcache**:创建`ehcache.xml`配置文件,指定集群模式,并配置JGroups的通道(Channel)。例如: ```xml &lt;!-- 设置过期策略 --&gt; &lt;jgroups-channel name="myChannel" stack="tcp"/&gt; ``` ...

    Ehcache集群实例

    在本实例中,我们将探讨如何配置和使用Ehcache的集群功能,以及涉及的JGroups和RMI技术。 1. **Ehcache集群**:Ehcache集群使得多台服务器上的多个Ehcache实例能够共享数据。这通过分布式缓存实现,其中的缓存项...

    ehcache集群方案

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

    ehcache jroups tcp udp试用实例

    1. 设置Ehcache配置文件(如ehcache.xml),定义缓存策略,启用集群模式,并指定JGroups配置。 2. 创建JGroups配置文件(如jgroups.xml),选择适当的协议栈(TCP或UDP)并调整相关参数。 3. 初始化Ehcache,启动...

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

    Ehcache结合JGROUPS实现分布式缓存复制的原理是,当一个节点上的缓存发生变化时(如添加、删除或更新缓存项),JGROUPS会自动将这个变化广播到集群中的其他节点,使得所有节点都能保持数据的一致性。这种模式通常被...

    EhCache-Cluster-Tester.zip_cluster_cluster html网页_ehcache_java

    在"cluster_cluster"标签中,我们可以推测这个示例主要展示了如何设置和操作EhCache的集群模式。集群模式通过网络通信将各个节点的数据同步,确保即使在单个节点故障的情况下,其他节点仍能提供服务,维持系统的稳定...

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

    在集群环境中,EhCache通过RMI(远程方法调用)或JGroups协议实现节点间的通信,保证了缓存数据的一致性。 二、EhCache在集群环境中的应用 1. 数据共享:在集群环境中,多个服务器节点可以共享同一份缓存数据,减少...

    EhCache 集群演示程序

    由于 JGroups 的包比较大,有两兆多,因此没有放到这个zip包里,请大家自行下载 JGroups 的jar包(jgroups-all.jar),并放入解压后的 webapp/WEB-INF/lib 目录下即可。 只需要将解压后的 webapp 目录配置到tomcat下做...

    Ecahche+Jgroups

    Ehcache是一个高性能、易用的Java本地缓存解决方案,而JGroups则是一个用于组通信的框架,专门处理集群中的节点间通信问题。当这两者结合时,可以构建出高效、可靠的分布式缓存集群,实现数据的实时同步。 **...

    assembly-descriptors-1.2.8.zip

    这个配置文件定义了JGroups集群的协议栈,包含了诸如UDP、TCP、NAKACK2等协议,这些协议协同工作以确保数据的可靠传输和集群中的节点状态同步。 接着,我们需要在Ehcache中定义一个或多个分布式缓存,设置复制策略...

    EHcache缓存框架

    3. ** Terracotta Server Array**:使用Terracotta服务器,可以实现EHcache的集群管理,提供高可用性,故障转移和负载均衡功能。 4. **缓存同步**:通过RMI(Remote Method Invocation)或JGroups协议进行节点间的...

    ehcache-2.9.0

    此外,Ehcache-2.9.0包含了主要的依赖jar包,这些jar包通常包括如Netty(用于网络通信)、JGroups(用于集群通信)等组件,它们对于实现分布式缓存功能至关重要。Netty是一个高性能的异步事件驱动的网络应用框架,...

    ehcache需要的包和文件

    - **JGroups**: 如果启用集群功能,Ehcache可能会使用JGroups进行通信。相关文件为`jgroups.jar`。 3. **配置文件**: - **ehcache.xml**: 这是Ehcache的主要配置文件,定义了缓存命名空间、大小限制、过期策略、...

    Ehcache经典教程实例应用-原创

    d) **JGroups**:JGroups是一个集群通信库,Ehcache利用它实现节点间的通信和一致性。 e) **Ehcache自身的复制机制**:通过内置的复制机制,实现节点间的缓存数据复制。 3. Ehcache与其他缓存框架对比: - **...

    ehcache官方教程

    2. **分布式缓存**:多个节点之间共享数据,适用于集群环境。 3. **复制缓存**:通过网络复制数据到其他节点,保持数据的一致性。 #### 二十、分布式缓存(Distributed Caching) 1. **RMI 复制**:通过 RMI 实现...

Global site tag (gtag.js) - Google Analytics