分布式和集群的区别

标签: 分布式和集群
19人阅读 评论(0) 收藏 举报
分类:

先简单举个栗子:

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


下面就正经解释下三种结构的区别吧~

单机结构

我想大家最最最熟悉的就是单机结构,一个系统业务量很小的时候所有的代码都放在一个项目中就好了,然后这个项目部署在一台服务器上就好了。整个项目所有的服务都由这台服务器提供。这就是单机结构。

那么,单机结构有啥缺点呢?我想缺点是显而易见的,单机的处理能力毕竟是有限的,当你的业务增长到一定程度的时候,单机的硬件资源将无法满足你的业务需求。此时便出现了集群模式,往下接着看。

集群结构

集群模式在程序猿界有各种装逼解释,有的让你根本无法理解,其实就是一个很简单的玩意儿,且听我一一道来。

单机处理到达瓶颈的时候,你就把单机复制几份,这样就构成了一个“集群”。集群中每台服务器就叫做这个集群的一个“节点”,所有节点构成了一个集群。每个节点都提供相同的服务,那么这样系统的处理能力就相当于提升了好几倍(有几个节点就相当于提升了这么多倍)。

但问题是用户的请求究竟由哪个节点来处理呢?最好能够让此时此刻负载较小的节点来处理,这样使得每个节点的压力都比较平均。要实现这个功能,就需要在所有节点之前增加一个“调度者”的角色,用户的所有请求都先交给它,然后它根据当前所有节点的负载情况,决定将这个请求交给哪个节点处理。这个“调度者”有个牛逼了名字——负载均衡服务器。

集群结构的好处就是系统扩展非常容易。如果随着你们系统业务的发展,当前的系统又支撑不住了,那么给这个集群再增加节点就行了。但是,当你的业务发展到一定程度的时候,你会发现一个问题——无论怎么增加节点,貌似整个集群性能的提升效果并不明显了。这时候,你就需要使用微服务结构了。

分布式结构

先来对前面的知识点做个总结。

从单机结构到集群结构,你的代码基本无需要作任何修改,你要做的仅仅是多部署几台服务器,每台服务器上运行相同的代码就行了。但是,当你要从集群结构演进到微服务结构的时候,之前的那套代码就需要发生较大的改动了。所以对于新系统我们建议,系统设计之初就采用微服务架构,这样后期运维的成本更低。但如果一套老系统需要升级成微服务结构的话,那就得对代码大动干戈了。所以,对于老系统而言,究竟是继续保持集群模式,还是升级成微服务架构,这需要你们的架构师深思熟虑、权衡投入产出比。

OK,下面开始介绍所谓的分布式结构。

分布式结构就是将一个完整的系统,按照业务功能,拆分成一个个独立的子系统,在分布式结构中,每个子系统就被称为“服务”。这些子系统能够独立运行在web容器中,它们之间通过RPC方式通信。

举个例子,假设需要开发一个在线商城。按照微服务的思想,我们需要按照功能模块拆分成多个独立的服务,如:用户服务、产品服务、订单服务、后台管理服务、数据分析服务等等。这一个个服务都是一个个独立的项目,可以独立运行。如果服务之间有依赖关系,那么通过RPC方式调用。

这样的好处有很多:

  1. 系统之间的耦合度大大降低,可以独立开发、独立部署、独立测试,系统与系统之间的边界非常明确,排错也变得相当容易,开发效率大大提升。
  2. 系统之间的耦合度降低,从而系统更易于扩展。我们可以针对性地扩展某些服务。假设这个商城要搞一次大促,下单量可能会大大提升,因此我们可以针对性地提升订单系统、产品系统的节点数量,而对于后台管理系统、数据分析系统而言,节点数量维持原有水平即可。
  3. 服务的复用性更高。比如,当我们将用户系统作为单独的服务后,该公司所有的产品都可以使用该系统作为用户系统,无需重复开发。

查看评论

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

分布式与集群的区别是什么? 添加评论  分享 按投票排序按时间排序 10 个回答 47赞同 反对,不会显示你的姓名 Wang Xu,后端码农,学过通信...
  • baicp3
  • baicp3
  • 2016-03-16 14:36:38
  • 1340

关于集群、负载均衡、分布式的区别

关于集群、负载均衡、分布式的区别 1、Linux集群主要分成三大类( 高可用集群, 负载均衡集群,科学计算集群) 集群是一个统称,他分为好几种,如高性能科学群集、负载均衡群集、高可...
  • haiross
  • haiross
  • 2014-07-04 16:38:56
  • 6387

架构-分布式与集群的区别

架构-分布式与集群的区别 先说区别: 一句话:分布式是并联工作的,集群是串联工作的。   简单说:分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。  ...
  • xxj_jing
  • xxj_jing
  • 2017-05-25 11:18:19
  • 491

分布式-微服务-集群的区别

1.分布式 将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互。区别分布式的方式是根据不同机器不同业务。 上面:servic...
  • fly_zhyu
  • fly_zhyu
  • 2017-08-14 20:54:34
  • 2120

集群,分布式,微服务概念和区别理解

概念: 集群是个物理形态,分布式是个工作方式。 分布式:一个业务分拆多个子业务,部署在不同的服务器上集群:同一个业务,部署在多个服务器上 1:分布式是指将不同的业务分布在不同的地方。而集...
  • qq_37788067
  • qq_37788067
  • 2018-02-04 01:19:12
  • 794

系统架构中 集群和分布式的区别和联系

在IDF05(Intel Developer Forum 2005)上,会议指出单纯依靠垂直提升硬件性能来提高系统性能的时代已结束,分布式开发的时代实际上早已悄悄地成为了时代的主流,吵得很热的云计算实...
  • u013089369
  • u013089369
  • 2017-05-02 11:07:15
  • 554

微服务分布式集群概念理解

当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题。为了解决这些性能压力带来问题,我们需要在Web系统架构层...
  • u010098331
  • u010098331
  • 2016-12-12 15:17:06
  • 3124

结合实际项目理解集群和分布式的关系

1、关于集群和分布式的关系最近看了篇文章 到底什么是集群&分布式,文中收集了多名网友的回答,一个来自知呼的回答挺明了: 分布式:一个业务分拆多个子业务,部署在不同的服务器上,(我的补充:)具有处...
  • javaloveiphone
  • javaloveiphone
  • 2016-08-30 12:55:11
  • 2211

分布式、集群、微服务、SOA 之间的区别

分布式:不同模块部署在不同服务器上 作用:分布式解决网站高并发带来问题 集群:多台服务器部署相同应用构成一个集群 作用:通过负载均衡设备共同对外提供服务 SOA:业务系统分解为多个组件,让每个组件...
  • HeatDeath
  • HeatDeath
  • 2018-01-11 21:35:09
  • 286

何为分布式、微服务和集群!

一、分布式 小马正在经营一个在线购物网站,名叫TT猫,有商品管理、订单管理、用户管理、支付管理、购物车等模块,每个模块部署到独立的云服务主机。 现在,程序员小明同学浏览TT猫,想买一款牛逼...
  • oqqSSH
  • oqqSSH
  • 2017-11-12 14:46:57
  • 319
    个人资料
    持之以恒
    等级:
    访问量: 9万+
    积分: 1433
    排名: 3万+