13

我一直在阅读 Java 平台的所谓“数据网格”解决方案,包括 Terracotta、GigaSpaces 和 Coherence。我想知道是否有人有使用这些工具的实际经验并可以分享他们的经验。我也很想知道人们使用过什么规模的部署:我们是在谈论 2-4 个节点集群,还是您使用过比这更大的东西?

我被 Terracotta 吸引是因为它对 Hibernate 和 Spring 的“直接”支持,我们大量使用了这两者。我也喜欢它如何根据配置装饰字节码并且不需要您针对“网格 API”进行编程的想法。我不知道使用显式 API 方法的工具有什么优势,但如果它们确实存在,我很想听听它们。:)

我还花时间阅读有关 memcached 的信息,但我更感兴趣的是听取有关这三个特定解决方案的反馈。如果有人同时使用这两种方法,我很想知道它们如何与 memcached 进行对比。

4

4 回答 4

8

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

Hazelcast是在 Apache 许可下发布的,并且还提供企业级支持。代码托管在Google Code上。

于 2009-02-13T12:54:33.523 回答
7

我们有 50 台服务器运行 Web 服务应用程序,所有这些服务器都使用 bigIP 进行负载平衡。要求是缓存每个用户状态,以便后续状态不会再次执行相同的处理并从先前状态获取数据。这样,webservice 的客户端就不需要维护状态。

我们使用 Terracotta 来缓存状态并且从未遇到任何性能问题。在高峰时间,请求应用程序的数量是每秒 100 个。

于 2009-02-12T06:35:32.240 回答
3

您选择的库实际上取决于您的应用程序以及您想要实现的目标。

我曾在一家使用 Coherence 为其 Web 应用程序提供可扩展性(和某种冗余)的商店工作。我们发现您必须拥有大约 4-5 个节点才能开始从 Coherence 获得任何好处(2 或 3 个节点可能会降低性能)。我相信 Oracle 的文档说您需要很多(30 多个)节点才能真正从 Coherence 中受益。如果您确实使用 Coherence,请确保正确设置硬件 - 它对延迟非常敏感。

我个人会远离“插入”的东西。它们可能会给你一些开始,但你最终会遇到同步或性能问题,并且无论如何都必须开始编写特定于网格层的代码。基本上,您比库更了解您的应用程序,并且能够确定哪些项目需要缓存,它们需要多长时间,您的应用程序将如何使用等。

于 2009-02-12T08:14:51.223 回答
2

我对这些技术没有足够的经验,但我认为Apache Hadoop被证明是可扩展且可靠的。雅虎在10,000 个核心 Linux 集群上运行它。

它基于 Google MapReduce算法。

这篇文章描述了 MapReduce 以及为什么你应该关心它。

于 2009-02-12T04:50:16.800 回答