2012-04-27 116 views
1

我一直在研究这个了一个星期,但我想在我的特殊情况的一些想法......缓存实现

2物理服务器:

  • 服务器A - 公共WAR ,管理WAR

  • 服务器B - 公共WAR

要求:

  • 两个WAR都需要查看相同的数据。

  • admin WAR修改/添加数据到缓存。

  • 公共WARs修改缓存的其他部分/向它添加数据。整个高速缓存需要驻留在每个物理服务器上的内存中(如果我在服务器A上添加了一个管理员WAR或公共WAR,它需要在服务器B公共WAR上显示),所以如果发生故障,我们不能等了半个缓存中填充

  • 1500个活跃用户/服务器,绝大部分流量都被读取,很少写

额外的硬件出了问题。

这种情况下是否有良好的第三方缓存解决方案?看起来大多数分布式缓存系统想要在服务器A上留下一半数据,在服务器B上留下一半数据,这不能满足我们的故障转移性能需求。

感谢您的任何想法!

+0

可能是ehcache? – kosa 2012-04-27 18:13:25

回答

0

看看the replicated options for EhCache

听起来你一直在寻找的“分布式缓存”的信息,其中有一个不同的确定指标不是“复制缓存”。分布式缓存是分布在众多机器中的较大缓存系统,因此群集中任何机器的丢失都不会降低整个缓存,而只是部分缓存。在这种情况下,缓存的总大小可以达到(机器数量乘以每台机器的内存)。

在复制缓存中,缓存的数据在每台机器上进行复制,从而将总缓存大小限制为max(任何一台机器的内存)。

+0

你是对的。我正在阅读EhCache的复制细节。谢谢! – PersonThing 2012-04-27 18:21:42

1

http://www.gigaspaces.com/为此提供了一个解决方案,它允许您在复制模式下创建用作缓存的“空间”,因此每个节点都将具有精确的数据副本。

他们也有解决方案的故障转移或热备用。

编辑: Gigaspace远远不仅仅是一个共享缓存,但你可以只使用缓存解决方案。它被称为内存数据网格。他们戏剧性地改变了他们的网页,所以我找不到确切的页面。但是如果你通过文档搜索你会发现它。

你可以从这里开始 http://www.gigaspaces.com/datagrid

但是这项技术是不是免费的。

+0

不幸的是这个问题域不起作用。这是针对定制软件出售给在现有机器上托管它的公司(现有软件的新版本,对于现有硬件..网络托管不是选项)。 – PersonThing 2012-04-27 18:20:58

+0

虚拟主机只是一个选项。看看http://www.gigaspaces.com/datagrid – Hurda 2012-04-27 19:47:07

0

似乎大多数分布式缓存系统要离开服务器B上一半的数据 在服务器A和一半,这不符合我们的故障转移 性能需求。

不,您可以轻松调整。否则,您需要粘贴(您必须确切知道哪个缓存存储您的数据)。你可以选择EhCache,GigaSpace,GridGain等市场上的任何解决方案。我会推荐使用JBoss Cache,最简单,最准确的你需要的产品

0

这个领域有很多解决方案。

所有这些可以被配置为分布式缓存。 AFAIK当在JBoss AS中留下一个嵌入式缓存时,Infinispan效果最佳,最后我检查了它很难集成到其他应用程序服务器中。如果你有钱,我会推荐Terracotta的BigMemory。它是EhCache的商业衍生产品,并提供了许多其他更好的功能。