在我的基于 Spring MVC + Hibernate 的 Web 应用程序中,我使用 Ehcache 作为 Hibernate 二级缓存。它在单个服务器上运行得很好。但是我需要将我的应用程序迁移到集群环境。只是想知道如何使 Ehcache 作为 Hibernate 的二级缓存在集群环境中工作?提前致谢。
最佳答案
您需要使用 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"/>
关于java - 如何集群 Ehcache 用作 Hibernate 的二级缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30634856/