欢迎大佬纠错指正~~~
一.概念
集 群: 同一个业务,部署在多个服务器上
分布式: 同一个业务,拆分成多个子业务,部署在不同的服务器上
微服务: 同一个业务,按照功能模块拆分,每一个服务只对应一个功能模块
二.区别
集群是多台服务器一起处理同一个业务,可以使用负载均衡使得每一个服务器的负载相对平衡,集群中的一台服务器出现问题,该服务器所负责的业务可以由其他的服务器代为处理.集群是一种物理形态.
分布式是把一个业务拆分成多个子业务,给不同的服务器去处理,这里的服务器可以是单个的服务器,也可以是多个服务器集群,一旦处理该业务的服务器出现问题,那么该业务就无法实现了.分布式是一种工作方式.
微服务是把一个业务中的各种功能模块进行拆分,给不同的服务去处理,每个服务只处理一个功能模块,该服务可以是单个服务器也可以是多个服务器集群,每个服务之间都是低耦合的.微服务是一种架构风格.
为什么说分布式不一定是微服务:
假设有一个很大应用,拆分成几个小应用,但还是很庞大,即便使用了分布式,但其依旧不算是微服务,因为微服务的核心要素是微小,简单来说就是这个应用还不够小(嗯..没错就是这样!)
所以我们可以理解为:微服务是分布式的一个子集
三.应用场景
假设有一个业务,该业务有5个功能,每个功能单独处理需要1个小时.
此时,如果只部署一台服务器,则需要5个小时才能处理完该业务,若采用集群或者分布式来处理,结果如下:
1.采用集群处理:提供5台服务器一起处理该业务,则处理每个功能只需12分钟,即处理整个业务只需1个小时
2.采用分布式处理:提供5台服务器,每个服务器处理不同的功能,则一共也只需要一个小时.
该情况下,微服务和分布式的工作原理和最终结果是一样的.
四.总结
分布式中的每一个节点,都可以做集群.而集群并不一定就是分布式的.
微服务肯定是分布式的,但分布式不一定是微服务的.