有几个:
现在我没有使用所有这些工具,但我已经使用或调查了大部分。
GridGain和GigaSpaces更加关注网格计算而不是缓存,(依我之见)最适合于计算网格而不是数据网格(请参见此处对计算网格与数据网格的解释)。我发现GigaSpaces是一项非常有趣的技术,它有几种许可选项,包括免费版本和面向初创企业的免费完整版本。
Coherence和Terracotta试图将缓存视为映射,这是一个相当自然的抽象。我经常使用Coherence,它是一个出色的高性能产品,但价格不菲。我对Terracotta不太熟悉。我有时会觉得Coherence的文档有点不足,但它确实是一个强大的产品。
我主要将OSCache用作减少Java Web应用程序中内存使用和碎片化的手段,因为它有一个相当简洁的JSP标签。如果你曾经查看过编译后的JSP,你会看到它们做了很多字符串连接。这个标签允许你有效地将一段JSP代码和HTML的结果缓存到一个字符串中,这在某些情况下可以极大地提高性能。
EHCache是一个简单的缓存解决方案,我也在Web应用程序中使用过它。虽然它可以作为分布式缓存,但我从未这样使用过。我倾向于将其视为一个快速而粗略的解决方案,但这可能是我的偏见。
memcached在PHP世界中特别流行(并被Facebook等网站使用)。这是一个非常轻便和简单的解决方案,它的优点是它不在同一进程中运行,并且如果对你很重要,你将拥有与其他技术堆栈更好的互操作性选项。
您可能也想要查看Hazelcast。Hazelcast是一个开源的事务性、分布式/分区队列、主题、映射、集合、列表、锁和执行器服务实现。它非常易于使用;只需将hazelcast.jar添加到您的类路径中并开始编码即可。几乎不需要任何配置。
如果您有兴趣以分布式方式执行Runnable、Callable任务,请查看http://code.google.com/docreader/#p=hazelcast上的分布式执行器服务文档。
Hazelcast是根据Apache许可证发布的,同时提供企业级支持。
您是否考虑过 Infinispan?它是来自 JBoss.org 的一个开源数据网格平台。对于更多细节,我建议您阅读这篇(旧的)博客文章 介绍了该项目,还有更多有趣的博客文章,包括一篇关于如何使用Infinispan与Hibernate和作为独立缓存。最近,关于Red Hat企业数据网格的消息也已经发布。另外,还有快速入门指南和一个DZone RefCard,甚至还有YouTube视频 :)
您可以将Appistry CloudIQ添加到列表中。它是一个分布式计算环境,可作为免费下载提供给不超过5台机器使用。除其他功能外,它还包括负载分配和在硬件故障的情况下自动故障转移。
传统的HPC方法受益于将应用程序代码与计算基础设施的进程隔离,但可能会受到性能损失,而其他方法可能显示更快的吞吐量,但对于长时间运行的系统容易出现内存泄漏和其他问题。