单机、集群、分布的理解

分布式:把不同功能模块分布部署在不同地方,最终完成了一系列的请求。不同的业务模块部署在不同的服务器上或者同一个业务模块分拆多个子业务,部署在不同的服务器上,解决高并发的问题

集群:同一个业务部署在多台机器上,提高系统可用性:分别把各个业务功能模块复制部署多份,每个相同功能的模块构成一个组,并以单一系统的模块加入管理。集群一般被分为三种类型,高可用集群如RHCS、LifeKeeper等,负载均衡集群如LVS等、高性能运算集群;

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

下面来看看项目部署结构发展:

单机结构:就是一个系统的所有代码都放在一个项目中,然后将这个项目部署在一台服务器上就行了。整个项目的所有服务都由这台服务器提供,这就是单机结构。所以当业务增长到一定程度,访问流量大时,单机的硬件资源是满足不了的。还有当这台服务器挂了,整个系统就访问不了了。如双十一抢购时,一下子人太多,导致服务崩了,然后抢个屁了。为了解决这问题,就出现了集群结构。

集群结构:在单机基础上再加几台服务器,一起做同样的服务功能。集群中每台服务器就叫做这个集群的一个“节点”,所有节点构成了一个集群。如淘宝双十一抢购,流量太多,我们可以分配到几台服务中,不像单机结构那样,只有一台服务,并且集群里其中一台服务器挂了,并不影响抢购。而且,有了集群,系统的处理能力都提高了。

但是当请求来了,我们怎么决定用哪个服务器来处理呢?这就需要“调度者”。所有的请求都先交给“调度者”,然后再根据当前所有服务器的负载情况再决定将该请求交给哪个服务处理。这个调度者就是所谓的负载均衡服务器。就好比如以前的春花楼啥的,客人来了,都是先到大妈那边,然后大妈再根据姑娘情况安排客人到哪个姑娘房间。大妈就从当负载均衡的角色了。

但是要注意:集群模式要做好session共享,确保在不同服务器切换过程中不会出现因为没有获取到session而终止退出服务。就比如,我登录是在一台A服务器内,所以登录信息保存在A服务器seesion里,但是后来的一些操作,比如抢购在B服务内,要是获取不到之前在A服务登录的session信息,就会以为该人没登录就会终止退出服务。

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

分布式就是将一个系统,按照业务需求拆分为一个个独立的子系统,在分布式结构中,这些子系统称为“服务”。就比如地铁银联支付这一模块,按照业务可以拆分为:计费服务、设备接口服务、交易服务、交易数据服务、黑名单服务、支付服务等,这些服务都是独立的项目,然后通过服务调用进行通信。

所以说 :单机,集群项目的代码都是放到一个系统里,当系统一个模块出问题了,可能会影响全部。而分布式就是将一个系统分为好多子系统,在这个子系统出现问题,不会影响到其他子系统。以后为了高可用性啥的,每个子系统都部署集群,所以这个子系统出现问题的,就调用备份那个集群。

 

例子:饭店厨房里

单机结构:洗菜炒菜都是一个人做。这样顾客要等好久。

集群:几个人做,也是自己洗菜之后再接着炒。这就减少了顾客等餐时间。

分布式:洗菜有专门人洗,炒菜也有专门炒,这样也就省了好多时间。

 

你可能感兴趣的:(分布式,集群)