首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JGroups,Terracotta & Hazelcast

JGroups,Terracotta & Hazelcast
EN

Stack Overflow用户
提问于 2012-07-09 23:28:31
回答 2查看 6.4K关注 0票数 16

试图把我的注意力集中在这3个项目上,它们似乎都能处理在集群过程中出现的稍微不同的问题。但是他们的所有文档都是为已经“熟悉”的开发人员编写的,对于像我这样的新手来说很难理解。

  • 他们各自试图解决的具体问题是什么,这些问题之间有何不同?
  • 每个集群与集群应用服务器(比如JBoss或GlassFish的内置集群功能)有什么不同?
  • 这些框架所解决的问题是否有足够的不同,足以保证在同一个项目中使用?或者他们是竞争对手,因此对相同/相似的问题有不同的解决方案?

提前感谢您对这些好奇而又难以捉摸的框架的洞察力!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-10 02:56:56

jgroups更多的是关于任务分发和集群管理,而hazelcast/terracotta则是更分布式的缓存(数据网格)--当您比较所有功能时,它们之间肯定有重叠--您需要弄清楚哪些功能更重要,可能更容易实现。

hazelcast允许通过基于tcp的寻址或多播进行群集。它支持映射、多任务、列表、队列、主题--对于基于磁盘的备份,必须实现加载/存储接口。

使用EhCache,您可以对缓存使用JGroups、JMS或RMI复制。

简而言之,如果您正在寻找不可靠的数据缓存/网格,则需要查看的工具是hazelcast或ehcache --如果您使用一个库查找任务分发,而不关心现有的数据网格缓存,JGroups将为您工作。

票数 13
EN

Stack Overflow用户

发布于 2018-11-25 14:30:37

可以区分两类技术: i. enabler (即中间件API)和ii。端到端或现成的解决方案(即应用API)。

JGroups是一种使能技术,它的核心是实现团体沟通基础,例如可靠的单播、多播和广播,它们是原子广播等更加复杂的分布式协议的构建块;它属于组通信工具包(GCTs)的范畴。

Hazelcast和Terracotta是端到端服务技术,因为它们为分布式应用程序提供了丰富的服务集;它属于内存中数据网格(IMDGs)的范畴,也称为分布式和内存缓存解决方案,非常适合于计算延迟较低的数据。

在能力方面:

  • JGroups提供了一组原语来启用组成员关系,这是任何集群场景中的一个关键概念,在这种情况下,必须根据生命周期和角色来管理一组加入/离开参与者/节点;它允许通过在基础API(如前所述,组成员)上堆叠微协议来创建一组基于协议内核设计的丰富协议,这些API依赖于TCP和UDP*上消息的可靠分布。JGroups不提供任何组合服务:这类服务可以构建在基本提供的功能之上。
  • Hazelcast提供了一组丰富的分布式数据结构,可以使用隐式复制因子进行完全复制或切分;分布式列表、映射、队列和锁是使用Java接口实现的基本数据结构的示例,显然分发和复制隐含地需要由其引擎,特别是由云发现SPI集群管理器模块提供的组成员服务。Hazelcast可以通过IP组播、使用TCP的IP多播和第三方云服务(例如Zookeeper)来实现组成员管理。潜在地,Hazelcast可能使用JGroups服务来进行节点发现和群集管理(也称为组成员服务)。
  • 另一方面,如果Terracotta与流行的Ehcache相关联,那么它提供了分布式缓存服务,而该服务又基于一组基本的组成员功能;在实现方面,Terracotta Ehcache可能基于JGroups服务的顶部。并提供了一组特定于缓存系统的特定API,因此不像Hazelcast那样通用。

考虑到这两种技术之间的关系,JGroups实际上是一种支持服务(即构建块),用于复合服务(即语义丰富的API),如Hazelcast和Terracotta,它们为第三方应用程序提供端到端或准备使用的服务,管理幕后所有可靠的分发方面。当然,JGroups是一个中间件,Hazelcast和Terracotta是应用程序,它们可以为集群服务嵌入自己的中间件实现。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11404688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档