ehcache jgroup 分布式配置

原创 2015年11月20日 15:29:29
<?xml version="1.0" encoding="UTF-8"?>
<ehcache>  
    <!--
        cache配置:
        对象在内存中的最大数量:
        maxElementsInMemory:
        因为内存是有限的,所以必须用maxElementsInMemory(必填项)设置每类对象在内存中的最大数量。
        ehcache_failsafe.xml 中为10000。
        
           到达内存中最大量时的过期/移出算法:
           eternal:
           如果为true,则永不过期,忽略后两个参数的设置。ehcache_failsafe.xml 为false.
           
        timeToIdleSeconds:
        以创建时间为基准开始计算的超时时长,默认为0,永不过时。ehcache_failsafe.xml 设为120秒。
        
        timeToLiveSeconds:
        在创建时间和最近访问时间中取出离现在最近的时间作为基准计算的超时时长,默认为0,永不过时。
        ehcache_failsafe.xml 设为120秒。
        
        如果timeToIdleSeconds和timeToLiveSeconds同时存在,则取出timeToIdleSeconds、timeToLiveSeconds最小的值,
        即min(timeToIdleSeconds,timeToLiveSeconds),表示只要有一个超时成立即算超时。
        
        移出算法:如果经过失效算法后,还是有很多有效的缓存,则执行清除算法。清除算法由两个参数组成:
        memoryStoreEvictionPolicy: 默认为LRU(最近最少访问),另有先进先出(FIFO),最少访问次数(LFU)
        overflowToDisk:为true,则将清除出来的缓存持久化到磁盘,否则人道毁灭之。
        
        储存到硬盘:
        maxElementsOnDisk:
        默认为0,无限多。ehcache_failsafe.xml为10000000。
        
        diskExpiryThreadIntervalSeconds:
        使用过期算法清除磁盘中失效对象的间隔,默认为120秒。  
        
        diskSpoolBufferSizeMB:
        默认为30M。  
        
        重启时缓存持久化:
        diskPersistent:
        当应用重启时,可将缓存先持久化到硬盘,重启后再行载入,节省大量的重新从数据库载入。但只适合那些缓存不怎么变化,
        或者有特殊机制保证重\启后应用能接收到重启这段时间里缓存变化信息的情况。
        
        cacheEventListenerFactory配置:
        replicateAsynchronously:
        对象同步是否异步完成,默认为true。如果比较紧急就设为false。 在一致性时间性要求不强的时候,设为异步可大大提供性能,
        因为它是异步立即返回的,而且可以批量提交。
        
        replicateUpdatesViaCopy:
        是否将对象变更复制到所有节点,还是只是发送一个失效信息,让对方该缓存失效,当对方需要该缓存时重新计算载入。
        默认为true。鉴于对象复制的消耗挺大的,又有锁的问题,而且对方也未必需要该对象,所以此属性建议设为false。
        如果业务上真的需要设为true时,就可考虑使用Terracotta了。
        
        replicatePuts:
        增加对象时是否同步,默认为true,如果replicateUpdatesViaCopy为false,选择了失效算法,所以replicatePuts 要设为false。
        
        replicateUpdates:
        修改加对象时是否同步,默认为true
        
        replicateRemovals:
        删除加对象时是否同步,默认为true
    -->
    
   <!-- 缓存同步jgroup配置 -->  
   <!-- 参数示例:
connect=TCP(bind_addr=$[jg_address1];bind_port=$[jg_port1])
这里配置的是当前机器的 ip 和绑定的端口号
TCPPING(initial_hosts=$[jg_address1][$[jg_port1]],$[jg_address2][$[jg_port2]]
这里配置的是当前集群下所有的 ip 和端口号列表
例如:集群中有两台机器其中一台 ip 192.168.1.45,一台是192.168.1.46
那么这两台Ehcache的配置如下:
192.168.1.45
properties="connect=TCP(bind_addr=192.168.1.45;bind_port=7800):
TCPPING(initial_hosts=192.168.1.45[7800],192.168.1.46[7800];
   -->  
    
            <cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"
        properties="connect=TCP(bind_addr=$[jg_address1];bind_port=$[jg_port1]):
         TCPPING(initial_hosts=$[jg_address1][$[jg_port1]],$[jg_address2][$[jg_port2]];
         port_range=10;timeout=5000;num_initial_members=2):MERGE2(min_interval=3000;max_interval=5000):   
         FD_ALL(interval=5000;timeout=20000):FD(timeout=5000;max_tries=48;):VERIFY_SUSPECT(timeout=1500):
         pbcast.NAKACK(retransmit_timeout=100,200,300,600,1200,2400,4800;discard_delivered_msgs=true):
         pbcast.STABLE(stability_delay=1000;desired_avg_gossip=20000;max_bytes=0):pbcast.GMS(print_local_addr=true;join_timeout=5000)"  
        propertySeparator="::"/>

        
    <diskStore path="java.io.tmpdir/ehcache"/>
    <defaultCache maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="300" timeToLiveSeconds="600" overflowToDisk="true"
        memoryStoreEvictionPolicy="LRU"  
        maxElementsOnDisk="10000000" diskExpiryThreadIntervalSeconds="600"  
        diskPersistent="false"
    >
        <cacheEventListenerFactory  
          class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"  
          properties="replicateAsynchronously=true, replicatePuts=true,  
          replicateUpdates=true, replicateUpdatesViaCopy=true, replicateRemovals=true" />
    </defaultCache>
    
    <!-- shiro授权的缓存名称 -->
    <cache name="xxx_admin_shiroAuthorizationCache" maxElementsInMemory="10000" timeToLiveSeconds="3600">
        <cacheEventListenerFactory  
          class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"  
          properties="replicateAsynchronously=true, replicatePuts=true,  
          replicateUpdates=true, replicateUpdatesViaCopy=true, replicateRemovals=true" />
    </cache>
    
    <!-- shiro认证的缓存名称 -->
    <cache name="xxx_admin_shiroAuthenticationCache" maxElementsInMemory="10000" timeToLiveSeconds="3600" memoryStoreEvictionPolicy="LRU">
         <cacheEventListenerFactory  
          class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"  
          properties="replicateAsynchronously=true, replicatePuts=true,  
          replicateUpdates=true, replicateUpdatesViaCopy=true, replicateRemovals=true" />
    </cache>
    
    <!-- shiro的活动session缓存名称 -->
    <cache name="xxx_admin_shiroActiveSessionCache" maxElementsInMemory="10000" timeToLiveSeconds="3600" memoryStoreEvictionPolicy="LRU">
        <cacheEventListenerFactory  
          class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"  
          properties="replicateAsynchronously=true, replicatePuts=true,  
          replicateUpdates=true, replicateUpdatesViaCopy=true, replicateRemovals=true" />
    </cache>
    
</ehcache>


版权声明:本文为博主原创文章,未经博主允许不得转载。

ehCache集群JGroups方式配置

ehCache集群JGroups方式配置

Jgroups初步讲解

转自:http://xpenxpen.iteye.com/blog/2041897 1.官方的tutorial已经很好了,得首先阅读。  http://www.jgroups.org/ug.htm...

EhCache JGroups 集群模式

EhCache 从 1.5. 版本开始增加了 JGroups 的分布式集群模式。与 RMI 方式相比较, JGroups 提供了一个非常灵活的协议栈、可靠的单播和多播消息传输,主要的缺点是配置复杂以及...

利用JGroup同步Memcache文件

利用JGroup同步Memcache文件

ehcache jgroups 集群配置

Ehcache的学习文档跟配置文档 Ehcache默认会读取src目录下的ehcache.xml来进行配置.   基本的单机下的配置ehcache.xml配置. ...

WebLogic 通过数据库的方式实现Session共享的配置

1. 配置准备 1) 要配置JDBC的方式复制Session,主要为下面三个步骤 (1)在数据库中创建表 (2)创建对数据库具有读/写权限的连接池 (3)在weblogic.xml 部署描述符中配置...
  • dqp2012
  • dqp2012
  • 2016年08月28日 15:44
  • 1692

Ehcache对并发的支持

Ehcache对并发的支持          在高并发的情况下,使用Ehcache缓存时,由于并发的读与写,我们读的数据有可能是错误的,我们写的数据也有可能意外的被覆盖。所幸的是Ehcache为我...

Ehcache 下 用jgroup进行复制,Ehcache集群

从官方文档上了解到 用RMI 比较简单,按官方的配置,试了n遍都不成功。配置和网上的一样,还是不行,对rmi没有兴趣了,转用Jgroup. 1. 下载资源 Jgroup, http://s...

java ehcache 分布式缓存配置实例

引用: http://www.open-open.com/lib//view/open1342696876495.html   ehcache介绍  下面我们动手通过项目来实践下吧.[RMI方式];...

EHCache入门系列(四)–分布式缓存集群环境配置

ehcache提供三种网络连接策略来实现集群,rmi,jgroup还有jms。同时ehcache可以可以实现多播的方式实现集群,也可以手动指定集群主机序列实现集群。   Ehcache支持...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ehcache jgroup 分布式配置
举报原因:
原因补充:

(最多只允许输入30个字)