ehcache集群缓存配置说明

来源:互联网 发布:怎么看算法导论这本书 编辑:程序博客网 时间:2024/05/20 21:47

 

前阵子用ehcache做缓存集群,现在结束了,所以整理了下配置文件的注释,有些是自己翻译的,仅供参考

 

<cacheManagerPeerProviderFactory

class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"

properties="connect=TCP(start_port=7800):

           TCPPING(initial_hosts=127.0.0.1[7800];port_range=10;timeout=3000;num_initial_members=3;up_thread=true;down_thread=true):

VERIFY_SUSPECT(timeout=1500;down_thread=false;up_thread=false):

            pbcast.NAKACK(down_thread=true;up_thread=true;gc_lag=100;retransmit_timeout=3000):

           pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;shun=false;print_local_addr=false;down_thread=true;up_thread=true)"

propertySeparator="::"

/>

 

cacheManagerPeerProviderFactory ehcache缓存监视器.

 connect=TCP 监视模式:TCP模式(还有UDP模式).

 start_port 指定监听起始端口.

 TCPPING 监听端口寻找广播方式(还有一种:TCPGOSSIP)寻找端口进行监听,start_port开始递增port_range寻找可用的端口.

 initial_hosts 指定ehcache的所在主机IP(如果有多台主机的话initial_hosts=192.168.1.1[7800],192.168.1.2[7800]).

 port_range 递增值.

 timeout 没找到说明,猜测是寻找下一个有效端口前的停留时间.

 num_initial_members 初始成员,执行缓存同步的项目数

 up_thread,down_thread每个通信协议都会产生两个线程(up_thread,down_thread),用来控制队列的挂起和运行,可以通过设置up_thread=false;down_thread=false来使这两个线程失效

 VERIFY_SUSPECT 校验模块(问题出现时检验是服务死掉了,还是通信接口失效了)

 gc_lag 垃圾回收间隔

 retransmit_timeout 重新广播前等待的时间

 pbcast.NAKACK 确保消息正常广播,如果广播失败,接收者将重新请求,同时保证消息的先进先出原则

 pbcast.GMS 调度器,实时的广播,告知成员的变动情况,新增或者去除.

 join_timeout 加入时间限时

 join_retry_timeout 重试加入限时

 shun 自动尝试加入(新版本已被去除,不赞成使用)

 print_local_addr 打印出当前广播的地址

==============================================================================

<cacheEventListenerFactory

 class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"

 properties="replicateAsynchronously=true,replicatePuts=true,

replicateUpdates=true,replicateUpdatesViaCopy=false,

replicateRemovals=true" />

 

cacheEventListenerFactory 注册相应的的缓存监听类,用于处理缓存事件.

replicateAsynchronously true|false 复制操作是异步(ture),还是同步(false)默认值为true.

replicatePuts true|false 当新对象被放入缓存,集群内其他缓存也放入,默认为true.

replicateUpdates true|false 新对象覆盖已经存在具有相同key的对象是否被复制,默认值为true.

replicateUpdatesViaCopy true|false 直接将更新之后的对象复制到集群中的其他缓存(true);不复制对象,只想集群众的其他

 

缓存发布一个对象更新的消息(false),默认为true.

replicateRemovals true|false 对象被移除,是否复制状态到集群中其他缓存,默认true.

 

==============================================================================

 

<defaultCachemaxElementsInMemory="500000" eternal="false"

 timeToIdleSeconds="1800"timeToLiveSeconds="1800"

 overflowToDisk="true"diskPersistent="true">

 <cacheEventListenerFactory

 class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"

 properties="replicateAsynchronously=true, replicatePuts=true,

 replicateUpdates=true, replicateUpdatesViaCopy=false,

 replicateRemovals=true" />

</defaultCache>

 

 <defaultCachemaxElementsInMemory="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.jgroups.JGroupsCacheReplicatorFactory"

  properties="replicateAsynchronously=true, replicatePuts=true,

  replicateUpdates=true, replicateUpdatesViaCopy=false,

  replicateRemovals=true" />

 </defaultCache>

 

defaultCache 默认缓存,有些没有被配置的缓存对象将使用默认缓存

maxElementsInMemory 内存中最大缓存对象数.当超过最大对象数的时候,ehcache会按指定的策略去清理内存

eternal 缓存对象是否永久有效,一但设置了,timeout将不起作用.

timeToIdleSeconds 设置Element在失效前的允许闲置时间.仅当element不是永久有效时使用,可选属性,默认值是0,也就是可闲置时间无穷大.

timeToLiveSeconds timeToLiveSeconds:设置Element在失效前允许存活时间.最大时间介于创建时间和失效时间之间.仅当element不是永久有效时使用,默认是0.,也就是element存活时间无穷大.

overflowToDisk 配置此属性,当内存中Element数量达到maxElementsInMemory,Ehcache将会Element写到磁盘中.

diskSpoolBufferSizeMB 这个参数设置DiskStore(磁盘缓存)的缓存区大小.默认是30MB.每个Cache都应该有自己的一个缓冲区.

maxElementsOnDisk 磁盘中最大缓存对象数,若是0表示无穷大.

diskPersistent 是否在重启服务的时候清楚磁盘上的缓存数据.true不清除.

diskExpiryThreadIntervalSeconds 磁盘失效线程运行时间间隔.

memoryStoreEvictionPolicymemoryStoreEvictionPolicy:当达到maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理内存.默认策略是LRU(最近最少使用).你可以设置为FIFO(先进先出)或是LFU(较少使用).

:普通cachedefaultCache的属性一样,可以根据自己的实际需求去配置

 

原创粉丝点击