最佳答案
有几个:
- 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 更集中于 grid computing比缓存和(恕我直言)最适合计算网格比数据网格(见this explanation of compute vs data grids)。我发现 GigaSpaces 是一项非常有趣的技术,它有多种许可选项,包括免费版和面向初创公司的免费完整版。
Coherence 和 Terracotta 尝试将缓存视为 Maps ,这是一个相当自然的抽象。我经常使用 Coherence,它是一款出色的高性能产品,但并不便宜。 Terracotta 我不太熟悉。我发现 Coherence 的文档有时有些欠缺,但它确实是一个强大的产品。
OSCache 我主要用作减少 Java Web 应用程序中的内存使用和碎片的一种方法,因为它具有相当简洁的 JSP 标记。如果您曾经看过编译过的 JSP,您会发现它们执行了很多字符串连接。这个标签可以让你有效地将一段 JSP 代码和 HTML 的结果缓存到单个 String 中,在某些情况下可以极大地提高性能。
EHCache 是一种简单的缓存解决方案,我也在 Web 应用程序中使用过它。虽然从不作为分布式缓存,但它可以做到这一点。我倾向于将其视为一种快速而肮脏的解决方案,但这可能是我的偏见。
memcached 在 PHP 世界中特别流行(并被 Facebook 等网站使用)。这是一个非常轻便的解决方案,并且具有不在同一个进程中运行的优点,并且如果这对您很重要,您将拥有可以说与其他技术堆栈更好的互操作性选项。
关于java - 为您的应用程序启用网格/集群的最佳 Java 库是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/383920/