极客视点
极客时间编辑部
极客时间编辑部
113243 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/05:24
登录|注册

聊聊集群和分布式的区别

讲述:丁婵大小: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
  • Freeman
    1个任务执行需要10小时,10台机器的集群执行10个任务,不应该是10小时吗?
    1
    2
  • 哼歌儿李
    分布式是以缩短单个任务的执行时间来提升效率的,解决高并发的问题,而集群则是通过提高单位时间内执行的任务数来提升效率,提高系统可用性。
    1
  • 82
    是不是可以理解为,分布式强调分工协作而集群强调数量硬抗
    1
  • 乐朦
    最后饭店的例子更容易理解一些,以生活中的例子做对比,可以增深记忆,还能易于理解。👍
  • 鸡蛋石头
    分布式是系统管理方式
  • codewu
    集群是个物理形态,分布式是个工作方式。分布式缩短单个任务执行时间,来解决高并发问题。集群增强单位时间执行任务数,来提升效率。
  • 蓝莲花
    集群相对于服务器物理机而言的,分布式相对于某个软件系统而言的。
  • FreezeSoul
    集群是多个任务通过调度提高性能及可用性,分布式是给用户以透明的方式拆分处理一个任务
  • 十里坡剑神
    “集群是通过提高单位时间内执行的任务数来提升效率,提高系统可用性”?这里是提高系统吞吐量吧?
收起评论
显示
设置
留言
11
收藏
99+
沉浸
阅读
分享
手机端
快捷键
回顶部