用于群集的独立/复制Ehcache

时间:2012-09-21 18:35:38

标签: hibernate ehcache

在我们的项目中,我们决定在我们的应用程序中使用Ehcache作为Hibernate和查询缓存的二级缓存。它似乎运作良好。

然后我们突然意识到我们的生产环境是聚集的。看一下ehcache文档,我发现最好的办法就是分布式缓存,但那涉及到Terracotta Server,这是客户在这个阶段不准备付费的东西。

根据文档,对于独立拓扑:

  

如果正在使用多个独立缓存   应用程序节点运行相同的应用程序,然后有弱   他们之间的一致性。

我的两个问题是:

  1. 在“只读”模式下使用ehcache并继续在群集环境中独立使用它,我们将采取什么样的打击?因为如果只是说,对于它会击中其他节点的情况,它会从数据库中获取数据,因为缓存不会在那里复制/配置,我想我们会接受它。唯一的问题是,它不应该导致异常。我想知道在我的场景中使用独立拓扑的后果。

  2. 我们可以将第三种拓扑结构“复制缓存”视为一种解决方案吗?

  3. 我是ehcache的新手,因此也是这些基本问题。回复非常感谢!

    谢谢!

1 个答案:

答案 0 :(得分:0)

如果您的应用程序是群集的,并且您需要缓存可能会更改的数据,则需要使用支持此功能的缓存解决方案。如您所说,如果您希望在群集中使用EhCache,则需要使用Terracotta。

Hibernate文档列出了支持的缓存提供程序here

我已经使用Infinispan(开源JBoss解决方案来实现分布式缓存)成功实现了这一点。有一个全面的指南here,它将为您提供启动和运行所需的一切。

Infinispan支持多种操作模式,包括失效,复制和分发。 2LC的默认值是同步失效。在此模式下,当在集群中的节点上更新实体时,它将使缓存区域无效,并且将通知所有其他节点,并且将执行相同的操作。