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