一.概念
集群:
分布式:
微服务:
二.区别
集群是多台服务器一起处理同一个业务,可以使用负载均衡使得每一个服务器的负载相对平衡,集群中的一台服务器出现问题,该服务器所负责的业务可以由其他的服务器代为处理。直白一点:就是只有一个项目,只有一个war(jar)或节点部署在多台机器;集群是一种物理形态。分布式上的节点都能看作是一个集群。集群不一定是分布式的
分布式是把一个业务拆分成多个子业务,给不同的服务器去处理,这里的服务器可以是单个的服务器,也可以是多个服务器集群,一旦处理该业务的服务器出现问题,那么该业务就无法实现了.分布式是一种工作方式.就是把所有的功能、模块拆分成不同的子项目,部署在多台不同的服务器上,这些子项目相互协作共同对外提供服务。
微服务是把一个业务中的各种功能模块进行拆分,给不同的服务去处理,每个服务只处理一个功能模块,该服务可以是单个服务器也可以是多个服务器集群,每个服务之间都是低耦合的.微服务是一种架构风格.微服务是系统架构上的一种设计风格,主旨是将一个原本独立的系统拆分成对各小型的服务,这些小型服务都可以独自在进程中运行,服务之间通过基于HTTP的RESTFUL API进行通信协助。(由于各个独立的服务模块之间使用的是基于HTTP的JSON作为数据通信协作的基础,所以微服务中的模块开发时可以使用不同的语言)
三.分布式与集群的区别
分布式是将同一个业务拆分成不同的子模块放在不同的服务器上执行。而集群是将多个服务器集成到一起,实现同一个业务。分布式上的节点都能看作是一个集群。集群不一定是分布式的,不是分布式的集群有可能是就是系统把所有的功能、模块都集中到一个项目中,该项目部署在多台服务器上。从窄意上理解也分布式跟集群差不多。但是它的组织比较松散,不像集群有一个组织性,一台服务器垮了,其它的服务器可以顶上来。分布式的每一个节点都完成不同的业务,一个节点垮了那这个业务就不可访问了。
四.分布式与微服务的区别
分布式,是将一个巨大的系统划分成多个小模块,这点跟微服务是一样的,都是将系统进行拆分,部署到不同的机器上。
本质区别:目标不同!
分布式目标:访问量太大一台服务器承受不了,或者成本问题,不得不使用多台服务器来完成服务的部署!
微服务目标:只是将各个模块拆分开来,不会相互受影响,比如模块的升级或者出现BUG或者重构等等等等都不要影响到其他模块。
注意:
微服务不一定是分布式,因为微服务可以在一台机器上部署。
分布式不一定是微服务:假设有一个很大应用,拆分成几个小应用,但还是很庞大,即便使用了分布式,但其依旧不算是微服务,因为微服务的核心要素是微小,简单来说就是这个应用还不够小。
分布式不等于微服务,两者互不包含互相,但两者有交集。