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

单体:

  • 单独的一个项目,所有的模块都会写在一个项目中,并且单独部署在一台服务器上,这就是一个最简单的单体架构的一个模型

集群:

  • 单机处理到达瓶颈的时候,把单机复制几份,分别部署在多台服务器上,集群中每台服务器,叫做这个集群的一个节点,所有的节点构成了一个集群,每个节点都提供相同的服务。
  • 这样系统的处理能力就提升了好几倍,有几个节点就提升了几倍。
  • 用户的请求究竟有哪个节点来处理呢,最好能够让此时此刻负载较小的节点来处理,这样使得每个节点的压力都比较平均,要实现这个功能,需要在所有节点使用之前增加一个调度者的角色,用户的所有请求都先交给它,然后它根据当前所有节点的负载情况,决定将这个请求交给哪个节点处理,这个调度者就是负载均衡服务器,
    集群结构的好处就是系统扩展非常容易。

分布式:

  • 把项目水平拆分,比如以一个cms系统为例,这个cms系统中有用户模块,内容管理模块,还有一些其他的模块,把这些模块,比如用户模块和内容管理模块,我们单独部署在一台服务器上,把其他的一些比如评论模块,还有一些资源管理模块,又单独是部署在另外一台服务器上,通过这种项目,把单体项目水平的拆分成不同的模块,然后分开部署,这种就叫分布式项目

微服务:

  • 在分布式项目中,我们把一个项目水平的拆分成若干个模块,并且把若干个模块部署到不同的服务器上,分布式项目,它的这个范围比较广,因为假如说我一台服务器上部署了既有用户模块也有内容管理模块,后期维护起来,这台服务器上的东西仍然包含有很多多个模块,所以诞生了微服务架构
  • 微服务的理解:又把分布式项目进行了更细一级的划分,一个微服务,它的职责是单一的。以cms系统为例,我们可以把cms整个系统按照它的模块水平拆分成若干个服务,每个服务只负责一件事情,符合单一职责的原则,那我们可以这样拆,比如有用户模块,我们可以拆成用户微服务,只负责用户管理的相关模块,我们还有内容管理模块,我们可以拆分为内容管理服务,又只负责一个职责,微服务他们之间的通信,比如说我们可以使用一些ipc框架,还可以使用一些基于http
    协议的一些框架,来做相关的一些服务之间的调度相关的东西,这就是微服务架构和分布式架构之间的区别

微服务属于分布式架构,但是微服务比分布式架构划分的更细,就是服务于服务之间划分的更细,符合单一职责的原则

你可能感兴趣的:(微服务,分布式,java)