集群与分布式,大家知道有什么区别吗?

attachments-2020-06-jnwa1I4z5ef2abbb69b8d.png

用一个例子介绍集群与分布式:

小餐馆原来只有一个厨师,切菜洗菜备料炒菜他都全干。后来餐馆的客人多了,厨房里一个厨师忙不过来,又请了个厨师,两个厨师都能炒同样的菜,这两个厨师的关 系是集群。为了让厨师专心炒菜,把菜作到极致,又请了个配菜师负责切菜,备菜,备料,厨师和配菜师的关系是分布式,一个配菜师也忙不过来了,又请了个配菜 师,两个配菜师关系是集群。编程

1、分布式:服务器

分布式是指将多台服务器集中在一块儿,每台服务器都实现整体中的不一样业务,作不一样的事情。而且每台服务器都缺一不可,若是某台服务器故障,则网站部分功能缺失,或致使总体没法运行。存在的主要做用是大幅度的提升效率,缓解服务器的访问和存储压力。网络

分布式的优势是细化了应用程序的功能模块,同时也减轻了一个完整的应用程序部署在一台服务器上的负担,用了分布式拆分后,就至关于把一个应用程序的多个功能分配到多台服务器上去处理了。架构

v2-4a1f051c418c230e898c95bc8c2de77a_720w.jpg

注意:该图中最大特色是:每一个Web服务器(Tomcat)程序都负责一个网站中不一样的功能,缺一不可。若是某台服务器故障,则对应的网站功能缺失,也能够致使其依赖功能甚至所有功能都不可以使用。并发

2、集群:负载均衡

集群是是指将多台服务器集中在一块儿,每台服务器都实现相同的业务,作相同的事情。可是每台服务器并非缺一不可,存在的做用主要是缓解并发压力和单点故障转移问题。能够利用一些廉价的符合工业标准的硬件构造高性能的系统。实现:高扩展、高性能、低成本、高可用!分布式

v2-1c2ee671d2d46954871bd92c2dd56a5f_720w.jpg

集群的特色:模块化

2.1伸缩性(Scalability)oop

在一些大的系统中,预测最终用户的数量和行为是很是困难的,伸缩性是指系统适应不断增加的用户数的能力。提升这种并发会话能力的一种最直观的方式就增长资源(CPU,内存,硬盘等),集群是解决这个问题的另外一种方式,它容许一组服务器组在一块儿,像单个服务器同样分担处理一个繁重的任务,咱们只须要将新的服务器加入集群中便可,对于客户来看,服务不管从连续性仍是性能上都几乎没有变化,好像系统在不知不觉中完成了升级性能

2.2高可用性(High availability)

单一服务器的解决方案并非一个健壮方式,由于容易出现单点失效。像银行、帐单处理这样一些关键的应用程序是不能容忍哪怕是几分钟的死机。它们须要这样一些服务在任什么时候间均可以访问并在可预期的合理的时间周期内有响应。高可用性集群的出现是为了使集群的总体服务尽量可用,以便考虑计算硬件和软件的易错性。若是高可用性集群中的主节点发生了故障,那么这段时间内将由次节点代替它。次节点一般是主节点的镜像,因此当它代替主节点时,它能够彻底接管其身份,而且所以使系统环境对于用户是一致的。

2.3负载均衡(Load balancing)

负载均衡集群为企业需求提供了更实用的系统。如名称所暗示的,该系统使负载能够在计算机集群中尽量平均地分摊处理。该负载多是须要均衡的应用程序处理负载或网络流量负载。这样的系统很是适合于运行同一组应用程序的大量用户。每一个节点均可以处理一部分负载,而且能够在节点之间动态分配负载,以实现平衡。

2.4高性能 (High Performance )

一般,第一种涉及为集群开发并行编程应用程序,以解决复杂的科学问题。这是并行计算的基础,尽管它不使用专门的并行超级计算机,这种超级计算机内部由十至上万个独立处理器组成。但它却使用商业系统,如经过高速链接来连接的一组单处理器或双处理器 PC,而且在公共消息传递层上进行通讯以运行并行应用程序。所以,您会经常据说又有一种便宜的 Linux 超级计算机问世了。但它实际是一个计算机集群,其处理能力与真的超级计算机相等

3、两者之间的联系:

在开发中咱们能够将分布式和集群分开吗?

针对这个问题,咱们能够根据分布式的介绍看出,其主要的功能是用了将咱们的系统模块化,将系统进行解耦的,方便咱们的维护和开发的,可是其并不能解决咱们的并发问题,也没法保证咱们的系统在服务器宕机后的正常运转。

而集群呢?其刚好弥补了分布式的缺陷,集群,就是多个服务器处理相同的业务,这在一方面能够解决或者说改善咱们系统的并发问题,一方面能够解决咱们服务器若是出现必定数量的宕机后,系统仍然能够正常运转。

所以我说,分布式和集群式一对好基友,谁也离不开谁。。。。

集群与分布式的区别

集群是个物理形态,分布式是个工做方式。

只要是一堆机器,就能够叫集群,他们是否是一块儿协做着干活,这个谁也不知道;一个程序或系统,只要运行在不一样的机器上,就能够叫分布式,嗯,C/S架构也能够叫分布式。

集群通常是物理集中、统一管理的,而分布式系统则不强调这一点。

因此,集群可能运行着一个或多个分布式系统,也可能根本没有运行分布式系统;分布式系统可能运行在一个集群上,也可能运行在不属于一个集群的多台(2台也算多台)机器上。

分布式是相对中心化而来,强调的是任务在多个物理隔离的节点上进行。中心化带来的主要问题是可靠性,若中心节点宕机则整个系统不可用,分布式除了解决部分中心化问题,也倾向于分散负载,但分布式会带来不少的其余问题,最主要的就是一致性。

集群就是逻辑上处理同一任务的机器集合,能够属于同一机房,也可分属不一样的机房。分布式这个概念能够运行在某个集群里面,某个集群也可做为分布式概念的一个节点。

一句话,就是:“分头作事”与“一堆人”的区别

分布式是指将不一样的业务分布在不一样的地方。而集群指的是将几台服务器集中在一块儿,实现同一业务。分布式中的每个节点,均可以作集群。而集群并不必定就是分布式的。

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

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

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

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

例如:

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

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

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

attachments-2020-06-EFjx4ikx5ef2abaa015b1.jpg

相关文章
相关标签/搜索