【问题标题】:Hibernate Second Level cache using ecache (Replicating using RMI)使用 ehcache 的休眠二级缓存(使用 RMI 进行复制)
【发布时间】:2013-07-01 15:16:12
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: java hibernate ehcache second-level-cache


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2010-10-03
        • 2015-04-24
        • 1970-01-01
        • 1970-01-01
        • 2010-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多