Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。












想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。

7年前关闭。



Improve this question




这种功能可以在服务器群集上运行应用程序,以分配负载并提供额外的冗余。

我看过GridGain的演示文稿,对此印象深刻。

认识其他人吗?

最佳答案

有几个:

  • Terracotta(open source, based on Mozilla Public License);
  • Oracle Coherence(以前是Tangosol Coherence;商业;基于JSR 107,从未正式采用);
  • GigaSpaces(商业;基于JavaSpaces API,是Jini的一部分);
  • 您提到的
  • GridGain(开源:LGPL);
  • memcached
  • Java client library(开源:BSD License
  • EHCache(开源:Apache Software License;
  • OSCache(开源:modified Apache License
  • 无疑还有其他几个。

  • 现在我还没有使用所有这些,但是我已经使用或研究了其中的大多数。

    GridGain和GigaSpaces比cache更集中在grid computing上,并且(imho)最适合计算网格而不是数据网格(请参阅this explanation of compute vs data grids)。我发现GigaSpaces是一种非常有趣的技术,它具有多个许可选项,包括免费版本和面向初创企业的免费完整版本。

    Coherence和Terracotta尝试将缓存视为Maps,这是相当自然的抽象。我已经使用了很多Coherence,这是一款出色的高性能产品,但并不便宜。我不太熟悉的兵马俑。我有时会缺少有关Coherence的文档,但它确实是功能强大的产品。

    OSCache我主要用作减少Java Web应用程序中内存使用和碎片的一种方法,因为它具有相当整齐的JSP标签。如果您曾经看过已编译的JSP,您会发现它们执行了很多String串联。此标记使您可以有效地将JSP代码和HTML的结果片段缓存到单个String中,这在某些情况下可以极大地提高性能。

    EHCache是​​一个简单的缓存解决方案,我也在Web应用程序中使用过。绝对不要作为分布式缓存,但是它可以做到。我倾向于将其视为快速而肮脏的解决方案,但这也许是我的偏见。

    memcached在PHP世界中尤为流行(并被Facebook等网站所使用)。这是一个非常简便的解决方案,它的优点是它不会在同一过程中运行,而且如果对您来说很重要,那么可以说您可以与其他技术堆栈有更好的互操作性选项。

    10-04 10:06