对于大规模Java数据网格技术,您会推荐什么:Terracotta、GigaSpaces、Coherence等?

对于大规模Java数据网格技术,您会推荐什么:Terracotta、GigaSpaces、Coherence等?,java,memcached,terracotta,gigaspaces,datagrid,Java,Memcached,Terracotta,Gigaspaces,Datagrid,我一直在阅读Java平台的所谓“数据网格”解决方案,包括Terracotta、GigaSpaces和Coherence。我想知道是否有人有使用这些工具的实际经验,可以分享他们的经验。我还很想知道人们使用的部署规模:我们是在讨论2-4节点集群,还是您使用过比这更大的集群 我对Terracotta很感兴趣,因为它对Hibernate和Spring的“插入式”支持,我们都大量使用它们。我还喜欢它如何根据配置来装饰字节码,并且不需要您针对“网格API”进行编程。我不知道使用显式API方法的工具有什么好处

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

我对Terracotta很感兴趣,因为它对Hibernate和Spring的“插入式”支持,我们都大量使用它们。我还喜欢它如何根据配置来装饰字节码,并且不需要您针对“网格API”进行编程。我不知道使用显式API方法的工具有什么好处,但如果它们确实存在,我很乐意听到这些好处。:)


我也花时间阅读了有关memcached的文章,但我更感兴趣的是听取关于这三种具体解决方案的反馈。我很想知道,如果有人同时使用了这两种技术,它们与memcached的性能相比如何。

我对这些技术没有足够的经验,但我认为它们被证明是可扩展和可靠的。雅虎在上面运行它

它基于谷歌算法


这篇文章介绍了MapReduce以及您应该关注它的原因。

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


我们使用Terracotta缓存状态,从未遇到任何性能问题。在峰值时间,应用程序每秒收到的请求数为100。

您选择的库实际上取决于您的应用程序和您试图实现的目标

我在一家使用一致性为其web应用程序提供可伸缩性(以及冗余)的商店工作。我们发现您必须有大约4-5个节点才能从一致性中获得任何好处(2或3个节点可能会降低性能)。我相信Oracle的文档中说,您需要大量(30多个)节点才能真正从一致性中获益。如果你坚持一致性,确保你的硬件设置正确——它对延迟非常敏感

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

你可能也想签出。Hazelcast是队列、主题、映射、集合、列表、锁和执行器服务的开源事务性、分布式/分区实现。它非常容易使用;只需将hazelcast.jar添加到类路径中并开始编码。几乎不需要配置


根据Apache许可证发布,还提供企业级支持。代码托管在。

我使用Prevayler和Memcached完成了一个大型(目前为6-8GB)单服务器JVM,用于一些卸载的东西。我很想知道你得到了什么答案。您所说的部署规模是多少?我们正在研究的大多数部署规模都不是很大(4个或更少的节点),但我真的很想听到更大的部署,主要是为了看看这些解决方案是否能像他们的许多文档中所宣称的那样线性扩展。我总是向上投一个很好的“推荐”问题,特别是如果它们已经关闭的话。在50台服务器上每秒分配100个请求是一个非常低的负载,除非请求的计算量很大。你不认为Hadoop是大数据吗?这个问题是为了大内存而提出的(Terracotta、GigaSpaces、Coherence)。只是一个想法。