才开始接触的时候我对这三个概念真的是一头雾水,尤其是对分布式和微服务的区别,下面就以我自己的理解介绍一下这三个概念
一、集群(典型的系统部署方式)
集群:同一个应用,部署在多个服务器上
就是相当于单应用的多次拷贝,分散部署在多个物理服务器,多台服务器部署相同应用构成一个集群
作用:通过负载均衡设备共同对外提供服务,从而缓解服务器压力
二、分布式(分模块的系统部署方式)
分布式:同一个应用拆分为不同功能模块,按模块部署在不同服务器上;
作用:以 分散模块 的方式来达到 分散压力 的目的,分布式解决网站高并发带来问题,
三、微服务(架构设计方式)
微服务相比分布式服务来说,它的粒度更小,服务之间耦合度更低,由于每个微服务都由独立的小团队负责,因此它敏捷性更高,分布式服务最后都会向微服务架构演化,这是一种趋势, 不过服务微服务化后带来的挑战也是显而易见的,例如服务粒度小,数量大,后期运维将会很难
四、三者的对比
1、分布式 VS 集群
分布式,从窄意上理解,也跟集群差不多,但是它的组织比较松散,但又不像集群,有一个组织性
集群:一台服务器垮了,其它的服务器可以顶上来。
分布式:每一个节点,都完成不同的业务,一个节点垮了,那这个业务就不可访问了。
好的设计应该是分布式和集群的结合,先分布式再集群,具体实现就是业务拆分成很多子业务,然后针对每个子业务进行集群部署,这样每个子业务如果出了问题,整个系统完全不会受影响。
2、分布式 VS 微服务
分布式:分散压力(其实也不准确,也可以说是:以 分散能力 的方式来达到 分散压力 的目的)
微服务:分散能力(目的就是分散能力,从而达到功能间的解耦)
微服务的设计是为了不因为某个模块的升级和BUG影响现有的系统业务。
微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,他也可以是同一个服务器。
分布式和微服的架构很相似,只是部署的方式不一样而已。
简单的说,微服务是架构设计方式,分布式是系统部署方式,两者概念不同