Hibernate分布式缓存 - 多个应用程序可以共享相同的缓存吗?

时间:2011-01-15 11:39:11

标签: hibernate

我正在寻找使用分布式缓存设置Hibernate,其中我有一个应用程序写入数据库,另一个应用程序写入数据库。当写作通过Hibernate写入时,是否有一种简单的方法来通知阅读应用程序?分布式缓存将使缓存无效,但我需要读取应用程序知道已经进行了更改以立即刷新其数据。

谢谢, d

2 个答案:

答案 0 :(得分:8)

使用复制缓存(如JBossCache,InfiniSpan或EHCache)并配置复制更新而不是使缓存无效。 例如 http://docs.jboss.org/jbosscache/1.4.0/TreeCache/en/html/replication.html http://ehcache.org/documentation/distributed_caching.html

答案 1 :(得分:3)

我认为,如果没有一些努力,你不会让这项工作得以实现,尽管所有的组件都可以用来做你需要的各个部分。

具体来说,Hibernate内置对JBossCache 2的支持2nd-level distributed cache。 JBossCache 提供了一个事件体系结构,允许您监听缓存中的更改。

挑战在于将两者结合在一起,并弄清楚如何监听hibernate使用的JBossCache配置中的更改。应该可以,你只需要做一些阅读。

JBossCache2现在有点老了,但它是Hibernate支持开箱即用的最新版本。 JBossCache网站上有关于让v3与Hibernate一起工作的文档,但这需要额外的工作。

编辑:似乎JBossCache的开发正在停止,有利于它的替换,Infinispan。有关于如何integrate that with Hibernate的文档。