分布式
指将多台服务器集中在一起,每台服务器都实现总体的不同业务,做不同的事。利用更多的机器,处理更多的数据。
但是一旦有一台服务器出了事故,那么就会导致网站部分功能缺失,严重的话整个网站都会崩溃。
那么他的存在有什么作用呢?大幅度提高效率,缓解服务器的访问和存储压力。细化了应用程序的功能模块,减轻了整个应用程序部署在一个服务器的压力,相当于把一个应用程序的多个功能分配到多台服务器上去处理了。
集群
指将多台服务器集中在一起,每台服务器都实现相同的业务,做相同的事情。他不像分布式那样每台服务器都不可或缺,即使有一台服务器down掉了,但应用程序照常运行。
存在的意义是啥呢?主要是缓解并发压力和单点故障转移问题。
特点?伸缩性、高可用性、负载均衡、高性能
之间的联系
分布式主要的功能是用了将我们的系统模块化,将系统进行解耦的,方便我们的维护和开发的,但是其并不能解决我们的并发问题,也无法保证我们的系统在服务器宕机后的正常运转。
而集群呢?其恰好弥补了分布式的缺陷,集群,就是多个服务器处理相同的业务,这在一方面可以解决或者说改善我们系统的并发问题,一方面可以解决我们服务器如果出现一定数量的宕机后,系统仍然可以正常运转。
因此我说,分布式和集群式一对好基友,谁也离不开谁。。。。
区别
集群是个物理形态,分布式是个工作方式。
只要是一堆机器,就可以叫集群,他们是不是一起协作着干活,这个谁也不知道;一个程序或系统,只要运行在不同的机器上,就可以叫分布式,嗯,C/S架构也可以叫分布式。
集群一般是物理集中、统一管理的,而分布式系统则不强调这一点。
所以,集群可能运行着一个或多个分布式系统,也可能根本没有运行分布式系统;分布式系统可能运行在一个集群上,也可能运行在不属于一个集群的多台(2台也算多台)机器上。
分布式是相对中心化而来,强调的是任务在多个物理隔离的节点上进行。中心化带来的主要问题是可靠性,若中心节点宕机则整个系统不可用,分布式除了解决部分中心化问题,也倾向于分散负载,但分布式会带来很多的其他问题,最主要的就是一致性。
集群就是逻辑上处理同一任务的机器集合,可以属于同一机房,也可分属不同的机房。分布式这个概念可以运行在某个集群里面,某个集群也可作为分布式概念的一个节点。
一句话,就是:“分头做事”与“一堆人”的区别
分布式是指将不同的业务分布在不同的地方。而集群指的是将几台服务器集中在一起,实现同一业务。分布式中的每一个节点,都可以做集群。而集群并不一定就是分布式的。
举例:就比如新浪网,访问的人多了,他可以做一个群集,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将给哪一台去完成。
而分布式,从窄意上理解,也跟集群差不多, 但是它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器可以顶上来。
分布式的每一个节点,都完成不同的业务,一个节点垮了,哪这个业务就不可访问了。
简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。
例如:
如果一个任务由10个子任务组成,每个子任务单独执行需1小时,则在一台服务器上执行该任务需10小时。
采用分布式方案,提供10台服务器,每台服务器只负责处理一个子任务,不考虑子任务间的依赖关系,执行完这个任务只需一个小时。(这种工作模式的一个典型代表就是Hadoop的Map/Reduce分布式计算模型)
而采用集群方案,同样提供10台服务器,每台服务器都能独立处理这个任务。假设有10个任务同时到达,10个服务器将同时工作,1小时后,10个任务同时完成,这样,整身来看,还是1小时内完成一个任务!
共同学习,写下你的评论
评论加载中...
作者其他优质文章