Java为您的应用程序提供网格/集群支持的最佳库是什么?[已关闭]

2022-09-01 13:41:08

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

我看过GridGain的演讲,我对它印象深刻。

知道其他人吗?


答案 1

有几种:

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

GridGain和GigaSpaces更侧重于网格计算而不是缓存,并且(恕我直言)最适合计算网格而不是数据网格(请参阅计算与数据网格的解释)。我发现GigaSpaces是一项非常有趣的技术,它有几个许可选项,包括免费版本和初创公司的免费完整版本。

Coherence和Terracotta试图将缓存视为Maps,这是一个相当自然的抽象。我经常使用Concuric,它是一款出色的高性能产品,但并不便宜。我不太熟悉的兵马俑。Coherence的文档有时我觉得有点缺乏,但它确实是一个功能强大的产品。

OSCache 我主要用作减少Java Web应用程序中内存使用和碎片化的手段,因为它具有相当整洁的JSP标签。如果你曾经看过编译的JSP,你会看到它们做了很多字符串串联。此标记允许您有效地将 JSP 代码段和 HTML 的结果缓存到单个字符串中,这在某些情况下可以极大地提高性能。

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

memcached在PHP世界中尤其重要(并被Facebook等网站使用)。这是一个非常轻巧和简单的解决方案,其优点是它不在同一进程中运行,并且如果这对您很重要,那么您将拥有与其他技术堆栈更好的互操作性选项。


答案 2

您可能还想看看Hazelcast。Hazelcast是队列,主题,映射,集合,列表,锁定和执行器服务的开源事务,分布式/分区实现。它非常容易使用;只需将 hazelcast.jar 添加到您的类路径中,然后开始编码即可。几乎不需要任何配置。

如果您有兴趣以分布式方式执行 Runnable、可调用任务,请查看分布式执行器服务文档,网址为 http://code.google.com/docreader/#p=hazelcast

Hazelcast在Apache许可证下发布,并且还提供企业级支持。


推荐