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

徐亮伟, 江湖人称标杆徐。多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。擅长Web集群架构与自动化运维,曾负责国内某大型电商运维工作。
个人博客”徐亮伟架构师之路“累计受益数万人。
笔者Q:552408925
架构师群:471443208

标杆徐LinuxSre专题课程《运维实战项目训练营》

 

 

1.分布式的诞生
单纯依靠垂直提升硬件性能来提高系统性能的时代已结束,分布式开发的时代实际上早已悄悄地成为了时代的主流。

2.何为分布式
分布式可繁也可以简,最简单的分布式就是大家最常用的,在负载均衡服务器后加一堆web服务器,然后在上面搞一个缓存服务器来保存临时状态,后面共享一个数据库,大致结构如下图所示:


这种环境下的分布式结构非常简单。

3.分布式与集群的关系
集群:集群是个物理形态,指的是将几台服务器集中在一起,提供同一种业务。
分布式:分布式是指将不同的业务分布在不同的地方。

举例1:
1.将 jd 整个电商代码运行在一组web集群服务器中,现在假设注册代码有问题,那么使用集群这种方式势必会导致整个 jd 网站都故障,因为代码与代码之间的关联太强,相当于一个人胳膊坏了整个人就GameOver。
2.吸取了集群的教训,这次我们将 jd 的代码进行拆分,比如: 注册放一组服务器集群、登陆放一组服务器集群,等等。将 jd 的代码分散负载在不同的服务器集群中了,那么当注册代码出现问题,坏掉的只是注册服务器集群,并不会影响到用户使用登陆、浏览商品、支付、等等。

PS1: 分布式中的每一个节点模块,都可以做集群。 而集群并不一定就是分布式的。
PS2: 分布式与集群简单理解是: 一堆人分头做不同的事 ”与“ 一堆人做一件事”的区别。

举例2:
如果一个任务由10个子任务组成,每个子任务单独执行需1小时,则在一台服务器上执行该任务需10小时。
1.分布式方案,提供10台服务器,每台服务器只负责处理一个子任务,不考虑子任务间的依赖关系,执行完这个任务只需一个小时。
2.集群方案,同样提供10台服务器,每台服务器都能独立处理这个任务。假设有10个任务同时到达,10个服务器将同时工作,1小时后,10个任务同时完成,这样,整身来看,还是1小时内完成一个任务!

通过如上例子总结分布式与集群概念
1.分布式是以缩短单个任务的执行时间来提升效率的。(分布式主要解决高并发问题。)
2.集群是通过提高单位时间内执行的任务数来提升效率。(集群主要提高系统可用性。)

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

上一篇
下一篇