文档章节

分布式与集群的联系与区别

lee_ypp
 lee_ypp
发布于 2014/08/21 22:43
字数 2670
阅读 2147
收藏 163

集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。在客户端看来,一个集群就象是一个服务实体,但事实上集群由一组服务实体组成。与单一服务实体相比较,集群提供了以下两个关键特性

先说区别:

一句话:分布式是串联工作的,集群是并联工作的。

1:分布式是指将不同的业务分布在不同的地方。 而集群指的是将几台服务器集中在一起,实现同一业务。

分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。

举例:就比如新浪网,访问的人多了,他可以做一个群集,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将给哪一台去完成。

而分布式,从窄意上理解,也跟集群差不多, 但是它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器可以顶上来。

分布式的每一个节点,都完成不同的业务,一个节点垮了,哪这个业务就不可访问了。

2:简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。

例如:

如果一个任务由10个子任务组成,每个子任务单独执行需1小时,则在一台服务器上执行该任务需10小时。

采用分布式方案,提供10台服务器,每台服务器只负责处理一个子任务,不考虑子任务间的依赖关系,执行完这个任务只需一个小时。(这种工作模式的一个典型代表就是Hadoop的Map/Reduce分布式计算模型)

而采用集群方案,同样提供10台服务器,每台服务器都能独立处理这个任务。假设有10个任务同时到达,10个服务器将同时工作,1小时后,10个任务同时完成,这样,整身来看,还是1小时内完成一个任务!


集群概念

1. 两大关键特性

集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。在客户端看来,一个集群就象是一个服务实体,但事实上集群由一组服务实体组成。与单一服务实体相比较,集群提供了以下两个关键特性:

· 可扩展性--集群的性能不限于单一的服务实体,新的服务实体可以动态地加入到集群,从而增强集群的性能。

· 高可用性--集群通过服务实体冗余使客户端免于轻易遇到out of service的警告。在集群中,同样的服务可以由多个服务实体提供。如果一个服务实体失败了,另一个服务实体会接管失败的服务实体。集群提供的从一个出 错的服务实体恢复到另一个服务实体的功能增强了应用的可用性。

2. 两大能力

为了具有可扩展性和高可用性特点,集群的必须具备以下两大能力:

· 负载均衡--负载均衡能把任务比较均衡地分布到集群环境下的计算和网络资源。

· 错误恢复--由于某种原因,执行某个任务的资源出现故障,另一服务实体中执行同一任务的资源接着完成任务。这种由于一个实体中的资源不能工作,另一个实体中的资源透明的继续完成任务的过程叫错误恢复。

负载均衡和错误恢复都要求各服务实体中有执行同一任务的资源存在,而且对于同一任务的各个资源来说,执行任务所需的信息视图(信息上下文)必须是一样的。

3. 两大技术

实现集群务必要有以下两大技术:

· 集群地址--集群由多个服务实体组成,集群客户端通过访问集群的集群地址获取集群内部各服务实体的功能。具有单一集群地址(也叫单一影像)是集群的一个基 本特征。维护集群地址的设置被称为负载均衡器。负载均衡器内部负责管理各个服务实体的加入和退出,外部负责集群地址向内部服务实体地址的转换。有的负载均 衡器实现真正的负载均衡算法,有的只支持任务的转换。只实现任务转换的负载均衡器适用于支持ACTIVE-STANDBY的集群环境,在那里,集群中只有 一个服务实体工作,当正在工作的服务实体发生故障时,负载均衡器把后来的任务转向另外一个服务实体。

· 内部通信--为了能协同工作、实现负载均衡和错误恢复,集群各实体间必须时常通信,比如负载均衡器对服务实体心跳测试信息、服务实体间任务执行上下文信息的通信。

具有同一个集群地址使得客户端能访问集群提供的计算服务,一个集群地址下隐藏了各个服务实体的内部地址,使得客户要求的计算服务能在各个服务实体之间分布。内部通信是集群能正常运转的基础,它使得集群具有均衡负载和错误恢复的能力。

集群分类

Linux集群主要分成三大类( 高可用集群, 负载均衡集群,科学计算集群)

  • 高可用集群( High Availability Cluster)

  • 负载均衡集群(Load Balance Cluster)

  • 科学计算集群(High Performance Computing Cluster)

================================================

具体包括:

Linux High Availability 高可用集群 (普通两节点双机热备,多节点HA集群,RAC, shared, share-nothing集群等)

Linux Load Balance 负载均衡集群 (LVS等....)

Linux High Performance Computing 高性能科学计算集群 (Beowulf 类集群....)

分布式存储

其他类linux集群 (如Openmosix, rendering farm 等..)

详细介绍

1. 高可用集群(High Availability Cluster)

常见的就是2个节点做成的HA集群,有很多通俗的不科学的名称,比如"双机热备", "双机互备", "双机".

高可用集群解决的是保障用户的应用程序持续对外提供服务的能力。 (请注意高可用集群既不是用来保护业务数据的,保护的是用户的业务程序对外不间断提供服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度)。

2. 负载均衡集群(Load Balance Cluster)

负载均衡系统:集群中所有的节点都处于活动状态,它们分摊系统的工作负载。一般Web服务器集群、数据库集群和应用服务器集群都属于这种类型。

负载均衡集群一般用于相应网络请求的网页服务器,数据库服务器。这种集群可以在接到请求时,检查接受请求较少,不繁忙的服务器,并把请求转到这些服务器上。从检查其他服务器状态这一点上看,负载均衡和容错集群很接近,不同之处是数量上更多。

3. 科学计算集群(High Performance Computing Cluster)

高性能计算(High Perfermance Computing)集群,简称HPC集群。这类集群致力于提供单个计算机所不能提供的强大的计算能力。

高性能计算分类  

高吞吐计算(High-throughput Computing)

有一类高性能计算,可以把它分成若干可以并行的子任务,而且各个子任务彼此间没有什么关联。象在家搜寻外星人( SETI@HOME  -- Search for Extraterrestrial Intelligence at Home )就是这一类型应用。这一项目是利用Internet上的闲置的计算资源来搜寻外星人。SETI项目的服务器将一组数据和数据模式发给Internet上 参加SETI的计算节点,计算节点在给定的数据上用给定的模式进行搜索,然后将搜索的结果发给服务器。服务器负责将从各个计算节点返回的数据汇集成完整的 数据。因为这种类型应用的一个共同特征是在海量数据上搜索某些模式,所以把这类计算称为高吞吐计算。所谓的Internet计算都属于这一类。按照 Flynn的分类,高吞吐计算属于SIMD(Single Instruction/Multiple Data)的范畴。

分布计算(Distributed Computing)

另一类计算刚好和高吞吐计算相反,它们虽然可以给分成若干并行的子任务,但是子任务间联系很紧密,需要大量的数据交换。按照Flynn的分类,分布式的高性能计算属于MIMD(Multiple Instruction/Multiple Data)的范畴。

4. 分布式(集群)与集群的联系与区别

分布式是指将不同的业务分布在不同的地方。

而集群指的是将几台服务器集中在一起,实现同一业务。

分布式中的每一个节点,都可以做集群。

而集群并不一定就是分布式的。

举例:就比如新浪网,访问的人多了,他可以做一个群集,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将给哪一台去完成。

而分布式,从窄意上理解,也跟集群差不多, 但是它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器可以顶上来。

分布式的每一个节点,都完成不同的业务,一个节点垮了,哪这个业务就不可访问了。


© 著作权归作者所有

共有 人打赏支持
lee_ypp
粉丝 65
博文 49
码字总数 67847
作品 0
程序员
私信 提问
加载中

评论(10)

蛋看江湖
蛋看江湖
集群用于处理同一业务,其核心是增强单一业务的吞吐量,分布式是多个节点共同组合起来处理某个复杂任务,核心是多节点协作处理复杂任务。其实这两个可以结合起来,在分布式的每个点上做集群,是否就可以提高复杂业务的吞吐量了呢?
Chet_W
Chet_W

引用来自“simplehpt”的评论

说白了,分布式就是用于负载均衡,发散请求的。集群就是实现节点更新,数据共享的!。
不对,集群难道不能用于负载均衡吗?集群必须有数据共享吗?
顺顺利利
顺顺利利

引用来自“CodingKu”的评论

我咋觉得说反了呢,咋觉得分布式是串联,集群是并联呢
哈哈哈,我先跑去google了一遍咩是串联和并联,才发现,他的确是写错了
lee_ypp
lee_ypp

引用来自“spiders”的评论

引用来自“CodingKu”的评论

我咋觉得说反了呢,咋觉得分布式是串联,集群是并联呢
同意

是的,你说的是对的,是我写错了@simplehpt
lee_ypp
lee_ypp

引用来自“CodingKu”的评论

我咋觉得说反了呢,咋觉得分布式是串联,集群是并联呢

恩恩,是的。是我一时粗心写错了@CodingKu
s
spiders

引用来自“CodingKu”的评论

我咋觉得说反了呢,咋觉得分布式是串联,集群是并联呢
同意
木川瓦兹
木川瓦兹
我咋觉得说反了呢,咋觉得分布式是串联,集群是并联呢
roylieu
roylieu
非也非也,分布式和集群没有明确的概念区分,请参考《分布式系统原理与范型》
益达先生
益达先生
说黑了,分布和集群都和我没关系。9
simplehpt
simplehpt
说白了,分布式就是用于负载均衡,发散请求的。集群就是实现节点更新,数据共享的!。
分布式与集群的联系与区别

集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。在客户端看来,一个集群就象是一个服务实体,但事实上集群由一组服务实体组成。与单一服务实体相比较,...

抢地主
2016/06/15
9
0
分布式与集群的联系与区别

一句话概括:分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。 例如:如果一个任务由10个子任务组成,每个子任务单独执行需1小时,则在...

Max_zhao
2017/05/05
0
0
分布式与集群的区别是什么?

作者:冷夜 链接:http://www.zhihu.com/question/20004877/answer/61025046 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 1:分布式是指将不同的业务...

抢地主
2016/06/15
6
0
集群、分布式、负载均衡区别与联系

1、Linux集群主要分成三大类( 高可用集群, 负载均衡集群,科学计算集群)(下面只介绍负载均衡集群) 负载均衡集群(Load Balance Cluster) 负载均衡系统:集群中所有的节点都处于活动状态,它...

天下杰论
2014/09/17
0
0
分布式系统与集群的区别

简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。   例如:如果一个任务由10个子任务组成,每个子任务单独执行需1小时,则在...

origin
2016/12/26
35
0

没有更多内容

加载失败,请刷新页面

加载更多

JDK 12又来了,我学不动了...

写在前面 看到 JDK 12又发布了,萌新不知不觉感觉瑟瑟发抖,从 Java 1.8的函数式编程思维和范式 到 Java 1.9的模块化特性的加持 以及还没来得及深切感受一下 Java 1.11 的 ZGC强大之后,这次...

CodeSheep
24分钟前
5
0
解决在gradle构建project时,发生peer not authenticated错误的方法

问题: FAILURE: Build failed with an exception.* What went wrong:Could not resolve all dependencies for configuration ':wl01-service:compile'.> Could not resolve com.ali......

Benz001
34分钟前
1
0
Apache Ignite上的TensorFlow

任何深度学习都是从数据开始的,这是关键点。没有数据,就无法训练模型,也无法评估模型质量,更无法做出预测,因此,数据源非常重要。在做研究、构建新的神经网络架构、以及做实验时,会习惯...

李玉珏
59分钟前
7
0
Java记录日志附带请求标识

起因 系统是web接口服务,排查故障的时候经常需要记录某次请求调用链路日志。这样我们拉日志的时候只要匹配这个traceid就行了 第一版解决方案 原来我们一直用了个很low的办法,在请求开始的时...

Tree
今天
4
0
使用split_size优化的ODPS SQL的场景

使用split_size优化的ODPS SQL的场景 首先有两个大背景需要说明如下: 说明1:split_size,设定一个map的最大数据输入量,单位M,默认256M。用户可以通过控制这个变量,从而达到对map端输入的...

阿里云官方博客
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部