为了账号安全,请及时绑定邮箱和手机立即绑定

浅谈集群与分布式的区别

标签:
PHP 架构

分布式

    指将多台服务器集中在一起,每台服务器都实现总体的不同业务,做不同的事。利用更多的机器,处理更多的数据。

    但是一旦有一台服务器出了事故,那么就会导致网站部分功能缺失,严重的话整个网站都会崩溃。

    那么他的存在有什么作用呢?大幅度提高效率,缓解服务器的访问和存储压力。细化了应用程序的功能模块,减轻了整个应用程序部署在一个服务器的压力,相当于把一个应用程序的多个功能分配到多台服务器上去处理了。

集群

    指将多台服务器集中在一起,每台服务器都实现相同的业务,做相同的事情。他不像分布式那样每台服务器都不可或缺,即使有一台服务器down掉了,但应用程序照常运行。

    存在的意义是啥呢?主要是缓解并发压力和单点故障转移问题。

    特点?伸缩性、高可用性、负载均衡、高性能

之间的联系

    分布式主要的功能是用了将我们的系统模块化,将系统进行解耦的,方便我们的维护和开发的,但是其并不能解决我们的并发问题,也无法保证我们的系统在服务器宕机后的正常运转。

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

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

区别

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

    只要是一堆机器,就可以叫集群,他们是不是一起协作着干活,这个谁也不知道;一个程序或系统,只要运行在不同的机器上,就可以叫分布式,嗯,C/S架构也可以叫分布式。

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

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

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

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

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

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

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

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

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

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

例如:

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

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

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

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
PHP开发工程师
手记
粉丝
11
获赞与收藏
116

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消