在群集环境中共享数据

时间:2015-06-05 05:52:21

标签: java spring hibernate cluster-computing ehcache

我正在将Spring MVC + Hibernate Web应用程序迁移到集群环境(Tomcat集群)。在应用程序中,我将一些查找表存储在类静态变量中,每当有变化时,我只是将表重新加载到变量(主要是HashMap)中,然后更改立即反映在应用程序的所有部分中。显然,它不能在集群环境中工作,因为静态变量只能在单个JVM中访问。我正在考虑使用Ehcache进行复制。但是我刚刚对Ehcache复制进行了测试,发现Ehcache的两个节点可能包含不一致的数据。例如,我将数字1,2,3 ...放入node1,并将node1和node2断开一段时间,然后重新连接,我发现在node2中缺少在断开连接期间放入node1的元素。这对缓存来说没问题。但是,我希望在一台服务器上进行的更改立即反映到群集中的另一台服务器。因此,最终用户可以获得与以前相同的体验。谁有人建议解决方案?谢谢!

1 个答案:

答案 0 :(得分:0)

免责声明:我为Terracotta工作

您可以使用Terracotta群集Ehcache。版本4.3.0再次提供了一个开源选项。

正如您在测试中注意到的那样,Ehcache 2.x中的复制选项不提供任何一致性保证。 然而,聚类选项将能够为您提供。