`
wenjinglian
  • 浏览: 824449 次
  • 性别: Icon_minigender_1
  • 来自: 株洲->深圳
社区版块
存档分类
最新评论

Ehcache集群使用

阅读更多

集群的事例是由别人提供(附件也提供下载,我将相关包已导入),我主要解释相关配置及注意事项

本事例采用的jgroups udp实现ehcache集群,下载下来找两台局域网的机器就能测试啦。

 

核心配置:

 

<ehcache updateCheck="false" dynamicConfig="false">

    <diskStore path="java.io.tmpdir/ehcache"/>

	<!-- mcast_addr=231.12.21.132; -->
	<cacheManagerPeerProviderFactory 
		class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"
	    properties="connect=UDP(mcast_addr=231.12.21.132;mcast_port=45566;bind_port=33433;ip_ttl=32;
	    mcast_send_buf_size=150000;mcast_recv_buf_size=80000):
	    PING(timeout=2000;num_initial_members=6):
	    MERGE2(min_interval=5000;max_interval=10000):
	    FD_SOCK:VERIFY_SUSPECT(timeout=1500):
	    pbcast.NAKACK(gc_lag=10;retransmit_timeout=3000):
	    UNICAST(timeout=5000):
	    pbcast.STABLE(desired_avg_gossip=20000):
	    FRAG:
	    pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;
	    shun=false;print_local_addr=true)"
	 	propertySeparator="::"
     />

    <defaultCache
        maxElementsInMemory="1000"
        eternal="false"
        timeToIdleSeconds="120"
        timeToLiveSeconds="120"
        overflowToDisk="true"
        />
	     
    <cache name="mycache"
        maxElementsInMemory="10"
        eternal="false"
        timeToIdleSeconds="120"
        timeToLiveSeconds="120"
        overflowToDisk="true">
        <cacheEventListenerFactory
	class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"
		   properties="replicateAsynchronously=true, replicatePuts=true,
		   replicateUpdates=true, replicateUpdatesViaCopy=false, replicateRemovals=true" />		        
    </cache>

</ehcache>

 

参数解释:

 

mcast_addr:  组播地址;如果不设置默认为 228.8.8.8. (我的理解是就相当于是一个组,每个节点配置都一样)

mcast_port:  组播的发送端口;如是不设置默认为7600 

ip_ttl:  time-to-live 数据包在当前sokets中存活时间,默认为32s

 

bind_port:  当前节点传输端口,如果不配置系统随机分配。(官方配置没提供这个端口配置,如果采用随机分配对后面服务器部署防火墙策略不好控制

 

 

jgroups官方udp api: http://www.jgroups.org/javadoc/org/jgroups/protocols/UDP.html

 

public class UDP
extends TP
IP multicast transport based on UDP. Messages to the group (msg.dest == null) will be multicast (to all group members), whereas point-to-point messages (msg.dest != null) will be unicast to a single member. Uses a multicast and a unicast socket.

The following properties are read by the UDP protocol:
参数:
param mcast_addr - the multicast address to use; default is 228.8.8.8.
param mcast_port - (int) the port that the multicast is sent on; default is 7600
param ip_mcast - (boolean) flag whether to use IP multicast; default is true.
param ip_ttl - the default time-to-live for multicast packets sent out on this socket; default is 32.
param use_packet_handler - boolean, defaults to false. If set, the mcast and ucast receiver threads just put the datagram's payload (a byte buffer) into a queue, from where a separate thread will dequeue and handle them (unmarshal and pass up). This frees the receiver threads from having to do message unmarshalling; this time can now be spent receiving packets. If you have lots of retransmissions because of network input buffer overflow, consider setting this property to true.
 

在linux服务器部署 防火墙端口开放策略:

 mcast_port 与 bind_port 端口都要打开

/etc/sysconfig/iptables 配置:

 

[root@ldap apache-tomcat-7.0.12]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.3.5 on Sat Jul 21 13:57:58 2012
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 81 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT 
-A INPUT -p udp --dport 33433 -j ACCEPT
-A INPUT -p udp --dport 45566 -j ACCEPT 
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
 

 

mcast_port :   -A INPUT -p udp --dport 33433 -j ACCEPT

bind_port: -A INPUT -p udp --dport 33433 -j ACCEPT

 

可能会碰到的问题:

java.lang.RuntimeException: the type of the stack (IPv6) and the user supplied addresses (IPv4) don't match: /231.12.21.132.

解决方案:http://nassir.iteye.com/blog/1602522

 

linux服务器配置使用命令:

 

  netstat -alu   查看所有udp端口

 

查看Linux下端口被哪个进程占用

  如:查看9425 被哪个程序占用

  lsof -i:9425

 

 

参考:

深入探讨在集群环境中使用 EhCache 缓存系统

http://www.ibm.com/developerworks/cn/java/j-lo-ehcache/index.html

 

Ehcache详细解读

http://raychase.iteye.com/blog/1545906

 

官方jGroups集群配置

http://ehcache.org/documentation/replication/jgroups-replicated-caching

 

(原)EhCache 集群演示程序

http://www.oschina.net/question/12_3984

 

 

 

分享到:
评论

相关推荐

    ehcache集群同步配

    ehcache集群同步配置实例加说明文档

    Ehcache集群实例

    在配置中,需要指定集群使用的通信机制,例如JGroups配置文件。JGroups配置文件定义了集群的网络拓扑、传输协议、心跳策略等参数。 5. **Ehcache与JGroups集成**:集成Ehcache和JGroups通常涉及以下步骤: - 引入...

    EHCACHE集群配置-JGroup篇

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

    ehcache集群方案

    在Ehcache集群方案中,一个关键组件是JGroups。JGroups是一个用于构建集群通信的框架,它允许节点之间进行可靠的消息传递。Ehcache利用JGroups来实现节点间的通信和数据同步,确保即使在某个节点失败时,数据也能在...

    Spring Boot 2.x基础教程:使用EhCache缓存集群.docx

    以下是如何使用EhCache实现缓存集群的详细步骤: 首先,确保缓存对象是可序列化的。在上述例子中,`User`实体需要实现`Serializable`接口,以便在进程间传递时能够正确地进行序列化和反序列化。如果不这样做,当...

    ehcache集群

    1. **负载均衡**:Ehcache集群可以将数据分布在多个节点上,从而将负载分散到各个服务器,降低单个节点的压力。 2. **高可用性**:如果一个节点失效,其他节点仍然可以提供服务,确保系统连续运行。 3. **数据冗余**...

    Ehcache通过Jgroups做集群

    在`EhcacheClusterDemo`这个示例项目中,可能包含了配置文件和示例代码,用于展示如何使用Ehcache和Jgroups实现集群。可以深入研究这些示例,了解如何在实际项目中应用这些配置和代码。 集群配置对于大型分布式系统...

    Ehcache集群环境配置

    ### Ehcache集群环境配置 #### 一、Ehcache简介 Ehcache 是一款开源的高性能 Java 缓存框架,广泛应用于 Java 应用程序中,以提高应用程序性能。其核心设计采用三层类层次结构,主要包括 CacheManager、Cache 和 ...

    ehcache使用,以及集群配置

    **Ehcache 使用详解与集群配置** Ehcache 是一个广泛使用的开源Java缓存系统,它提供了内存和磁盘存储,以及对缓存数据的分布式处理能力。在Java应用程序中,Ehcache能够显著提高性能,减少数据库负载,通过缓存...

    ehcache集群缓存配置

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

    ehcache rmi集群demo

    Ehcache是一款广泛使用的开源Java缓存库,它允许应用程序高效地存储和检索数据,以减少对数据库的访问,从而提高性能。RMI(Remote Method Invocation)是Java中的一种技术,用于在分布式环境中调用远程对象的方法。...

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

    TSA 是一个专门用于Ehcache集群的服务器,它提供了分布式锁服务、数据复制和故障检测等功能。当一个节点更新缓存时,TSA会确保这些更改被传播到集群中的其他节点,从而保持数据一致性。 Ehcache 3 集群支持的主要...

    Ehcache远程复制

    描述部分提到的“Ehcache集群配置手册帮助你梳理Ehcache集群部署的配置”,意味着本手册旨在为开发者提供一个详细的指南,指导如何通过远程复制技术配置Ehcache集群,以实现缓存数据的一致性和同步。在分布式系统中...

    EhCache 集群演示程序

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

    Ehcache RMI Replicated Cluster(RMI集群)

    6. **监控与优化**:在运行时,需要监控Ehcache RMI集群的性能,包括网络延迟、同步效率、内存使用等。根据实际情况可能需要调整复制策略、缓存大小、RMI超时等参数以优化性能。 使用Ehcache RMI Replicated ...

    ehcache-clustered-3.3.1-kit.zip

    4. 参考文档:`ehcache-reference-guide`可能包含Ehcache的官方参考指南,涵盖了各种配置选项、最佳实践以及常见问题解答,对于理解和使用Ehcache集群至关重要。 使用Ehcache集群的关键知识点包括: 1. **配置**: ...

    ehcache配置使用详解

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

    ehcache3集群、ehcache-clustered、terracotta资源包

    ehcache3集群相关资源,包括ehcache-clustered-3.10.0-kit、ehcache-3.10.0.jar、ehcache-clustered-3.10.0.jar、terracotta-3.7.7.tar.gz、ehcache-transactions-3.10.0.jar

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

    在集群环境中使用EhCache,可以实现数据的共享和一致性,有效减轻数据库的压力。本篇文章将深入探讨EhCache在集群环境中的应用及其配置文件的详细设置。 一、EhCache概述 EhCache是由Terracotta公司开发的内存缓存...

Global site tag (gtag.js) - Google Analytics