0

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

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

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

请验证我的理解。我正在尝试创建一个小项目来理解这一点。

4

2 回答 2

1

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

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

您可能还会发现像 memcached 这样的分布式缓存值得研究。 本页描述了它提供的相对于复制缓存的好处(tl;dr:更大的缓存大小)。 是一个为休眠提供 memcached 支持的库。

于 2013-07-03T20:31:27.323 回答
1

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

于 2013-07-05T09:53:38.787 回答