2010-01-15 217 views
1

任何人都可以提示我如何配置SwarmCache让Hibernate能够在集群(分布式缓存)中工作吗?可能还有其他一些替代方法(请不要建议JBoss Cache)?SwarmCache休眠配置

+0

为什么不是JBoss Cache?如果有限制,请指定它们。 – skaffman 2010-01-15 11:31:36

+0

就我所知,JBoss Cache只能使用IP多播进行群集配置。我的节点驻留在不同的网络中。如果我错了,请修复我,如果可以的话,给一些示例JBoss Cache配置。 – Archer 2010-01-15 23:15:02

回答

1

其实,我不知道为什么Hibernate文档(见19.2. The Second Level Cache)并没有提到他们作为集群安全但两者OSCacheEHCache是在集群环境中使用。可能是因为Hibernate没有正式支持它们。不过,我知道这两种方法都可以在分布式环境中工作,因为我使用EHCache来完成这项工作,Matt Raible使用OSCache来完成它(推荐使用patching hibernate)。看看马特的博客文章OSCache vs. EhCache for Hibernate's 2nd Level Cache,这是非常翔实的。

回到现在你的问题......很难给你一个准确的答案,因为你没有给您的要求和约束太多细节,但考虑到:

  • JGroups是一个工具包用于可靠的多播通信(注意,这不一定意味着IP多播,JGroups也可以使用诸如TCP的传输)。
  • 我对前一点的理解是,使用JBoss Cache并未真正排除(有关相关JGroups版本,请参阅this matrix)。所以这是一个选项。
  • SwarmCache看起来已经死了(自2003年11月以来零活动!),并没有太多的资源在互联网上,我不会使用它。
  • OSCache(无效)支持JGroups和JMS作为广播协议。这是一个选项。
  • EHCache支持Terracotta,RMI,JGroups,JMS,Cache Server作为分发机制,并支持invalidation and replication。这是一个选项。

现在,没有更多的细节(复制vs失效?您需要什么样的缓存并发策略支持?您有什么限制?),我不能再多说了。