使用ecache休眠二级缓存(使用RMI复制)



我对复制hibernate的二级缓存的看法:

假设我们点击一个URL来找到一个Employee对象,它进入了node1(集群的一个节点)的SessionFactory。[SQL查询将被Hibernate触发以获取Employee对象]

如果我再次点击URL来查找Employee对象,并且这次调用转到node2(集群的另一个节点),那么这次将不会触发SQL查询。数据将从从节点1复制到节点2的二级缓存中提取。

请确认我的理解。我正试图创建一个小项目来理解这一点。

如果没有复制,node1缓存中的数据将与node2缓存中的不同。

Ehcache确实有内置的跨节点复制功能。本文将为您提供有关基于RMI的实现的更多信息。

您可能还发现像memcached这样的分布式缓存值得研究。本页介绍了它相对于复制缓存(太长了,读不下去了:更大的缓存大小)所提供的优势。这里有一个为hibernate提供memcached支持的库。

您可以使用Infinispan实现这一点,开箱即用,并使用比RMI更高效的复制方法。。。我有一些独立的例子与这个用例完全匹配,即。https://github.com/galderz/secondlc/blob/master/src/test/java/secondlc/Cluster2lcTest.java

最新更新