聊聊集群和分布式的区别
极客时间编辑部
讲述:丁婵大小:7.42M时长:05:24
来源:博客园
此前,在 IDF05(Intel Developer Forum 2005)上,英特尔首席执行官克雷格·贝瑞特(Craig Barrett)就取消 4GHz 芯片计划一事致歉,这给了广大软件开发者一个明显的信号:单纯依靠垂直提升硬件性能来提高系统性能的时代已经结束,分布式开发早已悄悄成为了时代的主流。那么,想深入研究分布式,可以从哪方面入手?分布式与集群的区别是什么?一位网名为“至尊宝”的开发者回答了这些问题,以供开发者参考。
分布式可繁可简,最简单的分布式就是在负载均衡服务器后加一堆 Web 服务器,再建立一个缓存服务器来保存临时状态,并且共享一个数据库。这种环境下的分布式只是 Web server 而已,并且多个 Web server 之间没有任何联系,所以结构和实现都非常简单。
而有些情况下,分布式是一个非常庞大的体系。每个环节都有分布式的需求,并且当分布式节点之间有关联时,还得考虑通讯问题,同时需要监控和管理来支撑。一个最完备的分布式体系可以由以下模块组成:
分布式任务处理服务:负责具体的业务逻辑处理
分布式节点注册和查询:负责管理所有分布式节点的命名和物理信息的注册与查询,是节点之间联系的桥梁
分布式 DB:分布式结构化数据存取
分布式 Cache:分布式缓存数据(非持久化)存取
分布式文件:分布式文件存取
网络通信:节点之间的网络数据通信
监控管理:搜集、监控和诊断所有节点运行状态
分布式编程语言:用于分布式环境下的专有编程语言,比如 Elang、Scala
分布式算法:为解决分布式环境下一些特有问题的算法,比如解决一致性问题的 Paxos 算法
因此,若要深入研究云计算和分布式,就得深入研究以上领域。
那么,分布式与集群有什么区别呢?
集群是个物理形态,分布式是个工作方式。只要是一堆机器,就可以叫集群。一个程序或系统,只要运行在不同的机器上,就可以叫分布式,C/S 架构也可以叫分布式。
集群一般是物理集中、统一管理的,而分布式系统则不强调这一点。所以,集群可能运行着一个或多个分布式系统,也可能根本没有运行分布式系统。分布式系统可能运行在一个集群上,也可能运行在不属于一个集群的多台(2 台也算多台)机器上。
分布式是相对中心化而言的,强调任务在多个物理隔离的节点上进行。中心化带来的主要问题是可靠性,若中心节点宕机则整个系统不可用。分布式除了解决部分中心化问题,也倾向于分散负载,但分布式会带来很多的其他问题,最主要的就是一致性问题。集群是逻辑上处理同一任务的机器集合,可以属于同一机房,也可分属不同的机房。分布式可以运行在某个集群里面,某个集群也可作为分布式概念的一个节点。
一言以蔽之,分布式与集群的区别就是“分头做事”与“一堆人”的区别。分布式是指将不同的业务分布在不同的地方,而集群指的是将几台服务器集中在一起,实现同一业务。分布式中的每一个节点,都可以做集群。而集群并不一定就是分布式的。
分布式是以缩短单个任务的执行时间来提升效率的,解决高并发的问题,而集群则是通过提高单位时间内执行的任务数来提升效率,提高系统可用性。
例如,一个任务由 10 个子任务组成,每个子任务单独执行需要 1 小时,在一台服务器上执行该任务则需 10 小时。采用分布式方案,提供 10 台服务器,每台服务器只负责处理一个子任务,不考虑子任务间的依赖关系,执行完这个任务只需一个小时。而采用集群方案,同样提供 10 台服务器,每台服务器都能独立处理这个任务。假设有 10 个任务同时到达,10 个服务器将同时工作,1 小时后,10 个任务同时完成。
如果用大白话讲分布式与集群的区别,以饭店为例:小饭店原来只有一个厨师,负责切菜、洗菜、备料、炒菜。后来顾客增多,饭店又请了一个厨师,两个厨师能炒一样的菜,这两个厨师的关系就是集群。为了让厨师专心炒菜,饭店又聘请了一位配菜师负责切菜、备菜、备料,那么厨师和配菜师的关系就是分布式。如果一个配菜师忙不过来,饭店又请来一个配菜师,那么两个配菜师的关系也是集群。
以上就是今天的内容,你理解分布式与集群的关系了吗?
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(11)
- 最新
- 精选
- 小斧集群是个物理形态,分布式是个工作方式。 集群一般是物理集中、统一管理的,而分布式系统则不强调这一点。 分布式与集群的区别就是“分头做事”与“一堆人”的区别。 分布式是以缩短单个任务的执行时间来提升效率的,解决高并发的问题,而集群则是通过提高单位时间内执行的任务数来提升效率,提高系统可用性。6
- Freeman1个任务执行需要10小时,10台机器的集群执行10个任务,不应该是10小时吗?12
- 哼歌儿李分布式是以缩短单个任务的执行时间来提升效率的,解决高并发的问题,而集群则是通过提高单位时间内执行的任务数来提升效率,提高系统可用性。1
- 82是不是可以理解为,分布式强调分工协作而集群强调数量硬抗1
- 乐朦最后饭店的例子更容易理解一些,以生活中的例子做对比,可以增深记忆,还能易于理解。👍
- 鸡蛋石头分布式是系统管理方式
- codewu集群是个物理形态,分布式是个工作方式。分布式缩短单个任务执行时间,来解决高并发问题。集群增强单位时间执行任务数,来提升效率。
- 蓝莲花集群相对于服务器物理机而言的,分布式相对于某个软件系统而言的。
- FreezeSoul集群是多个任务通过调度提高性能及可用性,分布式是给用户以透明的方式拆分处理一个任务
- 十里坡剑神“集群是通过提高单位时间内执行的任务数来提升效率,提高系统可用性”?这里是提高系统吞吐量吧?
收起评论