如何将Ehcache集群用作Hibernate的二级缓存

时间:2015-06-04 04:19:05

标签: java hibernate caching cluster-computing ehcache

在我的基于Spring MVC + Hibernate的Web应用程序中,我使用Ehcache进行Hibernate二级缓存。它在单个服务器上运行良好。但是,我需要将我的应用程序迁移到集群环境。只是想知道如何让Ehcache作为Hibernate的二级缓存在集群环境中工作?提前谢谢。

1 个答案:

答案 0 :(得分:1)

您需要将{Teracotta用于clustering Ehcache并将ehcache.xml配置更改为了解群集环境的男性Ehcache:

<cache name="cacheRegion"
    maxEntriesLocalHeap="1000"
    eternal="false"
    timeToIdleSeconds="3600"
    timeToLiveSeconds="1800"">
  <persistence strategy="distributed"/>
  <terracotta clustered="true" consistency="eventual" />
</cache>

如果您不想购买Teracotta许可证,可以设置replicated cache instead。您可以使用RMI replication来协调缓存节点:

<cacheManagerPeerProviderFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
properties="peerDiscovery=automatic, multicastGroupAddress=230.0.0.1,
multicastGroupPort=4446, timeToLive=32"/>