1.<diskStore path="java.io.tmpdir"/>
a). diskStore(磁盘存储)元素是可选的。当你为任意缓存开启了overflowToDisk或者diskPersistent属性时, 它就必须配置。如果没配置,那么会出现提示信息并默认使用java.io.tmpdir作为存储地址;diskStore只有一个属性-"path"。它是.data和.index文件被创建时的目录路径;
如果path是一个java系统属性,那么在运行的虚拟机中取而代之的是它真实的路径值。
下列属性会被转化:
* user.home - User's home directory
* user.dir - User's current working directory
* java.io.tmpdir - Default temp file path
* ehcache.disk.store.dir - 你通常会在命令行指定的系统属性,比如:
java -Dehcache.disk.store.dir=/u01/myapp/diskdir ...
也可以在该属性下指定子目录,比如:java.io.tmpdir/one
2. <cacheManagerEventListenerFactory class="" properties=""/>
a) .CacheManagerEventListenerFactory可创建一个CacheManagerPeerProvider(当从CacheManager添加或删除缓存时,它会收到通知)。CacheManagerEventListenerFactory的属性:
* class - 工厂类名全称
* properties - 以逗号分隔针对工厂配置的属性
b) .CacheManager事件监听器的类名需为全称。
这些事件包括增加一个缓存、删除一个缓存。
回调到监听器的方法有同步和非同步的。而作为实现者的职责,安全的处理潜在的性能和线程安全取决于监听器在做什么。如果没有指定工厂类,那么监听器也不会创建。它是不存在默认值的。
3.(分布式操作可启用)
<cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory" properties="peerDiscovery=automatic,multicastGroupAddress=230.0.0.1,multicastGroupPort=4446,timeToLive=1"/>
a) .CacheManagerPeerProviderFactory来创建CacheManagerPeerProvider,在集群中,它可以发现其他的CacheManagers。
CacheManagerPeerProviderFactory的属性:
* class - 工厂类全称
* properties - 以逗号分隔针对工厂配置的属性
b).Ehcache 配备了内置的基于RMI的通讯系统,该系统有两种来发现参与集群的CacheManager的方式:
* 自动的,使用多播组。它可以自动发现同类manager并且探测到它们进入或离开该组的任何变化。
* 手动的,使用使用手动的rmiURL配置。在配置是要提供同类manager的硬编码列表!
b1).可按照下面示例配置自动模式:
<cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory" properties="peerDiscovery=automatic,timeToLive=32"/>
可用的属性有:
* peerDiscovery (必须的) - 指定为自动模式
* multicastGroupAddress (必须的) - 指定一个可用的多播组地址
* multicastGroupPort (必须的) - 为多播检测信号交通指定一个专用的端口
* timeToLive - 一个0-255之间的值,来决定数据包将传播多远
按照惯例,会有如下一些限制:
0 - 同一主机
1 - 位于同一子网
32 - 相同的站点
64 - 同一区域
128 - 同一大陆
255 - 无限制
b2). 可按照下面示例配置手动模式:
<cacheManagerPeerProviderFactory class= "net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory" properties="peerDiscovery=manual,rmiUrls=//server1:40000/sampleCache1|//server2:40000/sampleCache1 | //server1:40000/sampleCache2|//server2:40000/sampleCache2"/>
可用的属性有:
* peerDiscovery(必须的) - 指定为手动模式
* rmiUrls(必须的) - 在form中,形式以管道分隔的rmiURL列表 //hostname:port
4.(分布式操作可启用)
<cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"/>
CacheManagerPeerListenerFactory可用来创建CacheManagerPeerListener(在集群中可监听来自高速缓存复制器的消息)
CacheManagerPeerListenerFactory的属性:
* class - 工厂类全称
* properties - 以逗号分隔针对工厂配置的属性
Ehcache 配备了内置的基于RMI的通讯系统。可用RMICacheManagerPeerListenerFactory配置其监听器组件RMICacheManagerPeerListener。
可按照下面示例配置:
<cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory" properties="hostName=fully_qualified_hostname_or_ip,port=40001,socketTimeoutMillis=120000"/>
所有的属性都是可选的。如下:
* hostName - 运行监听器的主机名。指定位置的主机是多宿主的,而你想控制在集群中接收消息的接口。默认值为默认接口的主机名。
* port - 监听器监听的端口。默认值我自由端口。
* socketTimeoutMillis - 向监听器发送消息时,MS客户端套接字的number将保持开放。即使发送最慢的消息它也应满足。默认值为120000ms