分布式与集群的区别是什么?

分布式与集群的区别是什么?

在IDF05(Intel Developer Forum 2005)上,Intel首席执行官Craig Barrett就取消4GHz芯片计划一事,半开玩笑当众单膝下跪致歉,给广大软件开发者一个明显的信号,单纯依靠垂直提升硬件性能来提高系统性能的时代已结束,分布式开发的时代实际上早已悄悄地成为了时代的主流,吵得很热的云计算实际上只是包装在分布式之外的商业概念,很多开发者(包括我)都想加入研究云计算这个潮流,在google上通过“云计算”这个关键词来查询资料,查到的都是些概念性或商业性的宣传资料,其实真正需要深入的还是那个早以被人熟知的概念——分布式。

分布式可繁也可以简,最简单的分布式就是大家最常用的,在负载均衡服务器后加一堆web服务器,然后在上面搞一个缓存服务器来保存临时状态,后面共享一个数据库,其实很多号称分布式专家的人也就停留于此,大致结构如下图所示:

分布式与集群的区别是什么?

这种环境下真正进行分布式的只是web server而已,并且web server之间没有任何联系,所以结构和实现都非常简单。

有些情况下,对分布式的需求就没这么简单,在每个环节上都有分布式的需求,比如Load Balance、DB、Cache和文件等等,并且当分布式节点之间有关联时,还得考虑之间的通讯,另外,节点非常多的时候,得有监控和管理来支撑。这样看起来,分布式是一个非常庞大的体系,只不过你可以根据具体需求进行适当地裁剪。按照最完备的分布式体系来看,可以由以下模块组成:

分布式与集群的区别是什么?

分布式任务处理服务:负责具体的业务逻辑处理

分布式节点注册和查询:负责管理所有分布式节点的命名和物理信息的注册与查询,是节点之间联系的桥梁

分布式DB:分布式结构化数据存取

分布式Cache:分布式缓存数据(非持久化)存取

分布式文件:分布式文件存取

网络通信:节点之间的网络数据通信

监控管理:搜集、监控和诊断所有节点运行状态

分布式编程语言:用于分布式环境下的专有编程语言,比如Elang、Scala

分布式算法:为解决分布式环境下一些特有问题的算法,比如解决一致性问题的Paxos算法

因此,若要深入研究云计算和分布式,就得深入研究以上领域,而这些领域每一块的水都很深,都需要很底层的知识和技术来支撑,所以说,对于想提升技术的开发者来说,以分布式来作为切入点是非常好的,可以以此为线索,探索计算机世界的各个角落。

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

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

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

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

 

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

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

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

链接:http://www.zhihu.com/question/20004877/answer/61025046

来源:知乎

著作权归作者所有,转载请联系作者获得授权。

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

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

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

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

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

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

例如:

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

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

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

集群一般被分为三种类型,高可用集群如RHCS、LifeKeeper等,负载均衡集群如LVS等、高性能运算集群;分布式应该是高性能运算集群范畴内。

 
 
分布式:不同的业务模块部署在不同的服务器上或者同一个业务模块分拆多个子业务,部署在不同的服务器上,解决高并发的问题

集群:同一个业务部署在多台机器上,提高系统可用性
 

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/112473.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 关于VMware无法输入许可证密钥的方法

    关于VMware无法输入许可证密钥的方法首先,把电脑里的VMware卸载掉设置—-应用—-找到VMware——修改—-删除VMware不要保留任何配置文件其次,找到你的VMware安装文件,要知道它在哪或者把它放在一个比较好找的地方打开任务管理器—左上角文件—-运行新任务—然后按图片走等待安装完毕后就能正常输入许可证密钥了…

  • 自然语言处理中的Attention机制总结[通俗易懂]

    自然语言处理中的Attention机制总结[通俗易懂]    在面试的过程中被问到了attention,原来虽然其实已经实际用过attention了,也知道个大概原理是加权求和,但是对于加权的具体方法以及权值得分的计算并不是很清晰,面试答的一般,正好最近实习的地方

  • 如何升级PowerShell

    如何升级PowerShell

    2021年11月26日
  • 超级详细 倍增法 实现 LCA

    描述:倍增法用于很多算法当中,通过字面意思来理解就是翻倍增加嘛,这里着重讲使用倍增法在树中的应用求LCA;LCA是啥呢 在一棵树当中 lca表示的是两个节点最近公共祖先, 大家看这课树哈节点5,3的lca就是1,13和11的LCA就是6。节点8,12的lca就是8,那么我们如何通过被增来实现LCA呢。首先大家看下这个数组grand[x][i],这个数组表示标号为x节

  • mt4历史数据回测_mt410年历史数据

    mt4历史数据回测_mt410年历史数据这个网站只能下载2001年-当前时间前一个月的数据,还是挺全的。但是下载下来之后好像是一分钟图的,妈蛋其实我想要1小时图的EURUSD历史数据。网站地址:http://www.fxfupan.com/datacenter.html它们网站上的复盘大师可以试下,回去我就试下看看他们的软件怎么样刚才找到一个更好的,上面的东西可以不必看了。福汇官方有个历史数据下载器软件(初阶免费),登录自己的福汇账号,…

  • APAP论文阅读笔记[通俗易懂]

    APAP论文阅读笔记[通俗易懂]As-Projective-As-PossibleImageStitchingwithMovingDLT论文阅读笔记论文和代码可以在这个网址找到:https://cs.adelaide.edu.au/~tjchin/apap/一、全文翻译题目:使用移动DLT进行尽可能投影的图像拼接摘要:我们专注于图像拼接的任务,通常通过估计投影扭曲来解决这一问题——当场景是平面的或当视图完全因旋转而不同时,该模型是合理的。这样的条件在实践中很容易被违反,这就产生了使用重影人工制品的缝合结果,这就需要使用去

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号