自学内容网 自学内容网

Spring Cloud -- 微服务架构介绍

1. 单体架构

很多创业公司早期或者传统企业会把业务的所有功能实现都打包在一个项目里面,这就是单体架构

业务的所有功能实现都打包在一个war包或者jar包,这种方式称为单体架构

以电商系统为例,电商系统包括:用户管理,商品管理,订单管理,支付管理,库存管理,物流管理等

这种架构开发简单,部署简单,一个项目就包含了所有的功能,省去了多个项目之间的交互和调用消耗,直接部署在一个服务器即可

1.2 集群和分布式架构

当网站的用户量越来越大,需求越来越多,流量越来越大,单体架构的服务就可能面临以下问题:
  • 后端服务器的压力大,负载越来与高,甚至出现无法访问的情况
  • 业务场景逐渐复杂,为了满足客户的需求,单体应用也会越来越大,各个业务之间的耦合度也会悦来越高,任何一个问题,都需要整个项目重新构建,发布
  • 一个微小的问题,可能会导致整个应用挂掉

可以从两个方面进行优化:

  • 横向: 添加服务器,把单台机器变成多台机器的集群
  • 纵向:把一个应用,按照业务进行拆分,拆分为多个项目,此架构也称为垂直架构

以单体架构规模的项目为单位进行垂直划分,也就是将一个大项目拆分成一个一个单体架构项目.项目和项目之间相对比较独立,接口多为数据同步功能

2.集群和分布式

  • 集群是将一个系统完整的部署到多台服务器上,每个服务器都能提供系统的所有服务,多个服务器通过负载均衡调度完成任务,每个服务器称为集群的节点
  • 分布式是将一个系统拆分为多个子系统,多个子系统部署到多个服务器上,多个服务器上的子系统协同完成一个特点任务

比如:一开始的小饭店,只有一个厨师,这个厨师需要负责洗菜,切菜,炒菜

后面饭店越来越火热,一个厨师忙不过来,就需要多个厨师,此时多个厨师就是集群

后面,为了让厨师专心炒菜,又请了一个配菜师,负责备菜,洗菜,切菜,此时厨师和配菜师的关系就是分布式

后面,一个配菜师也忙不过来,又招了多个配菜师,这多个配菜师之间又是集群关系

集群和分布式的区别和联系

1. 从概念上来说,集群是多个计算机做同样的事情,分布式是多个计算机做不同的事情 2. 从功能上来说,集群的每一个节点是相同的,并且可以替代.分布式也是由多个节点组成的,但是每个节点完成的业务是不一样的,一个节点出现了问题,这个业务就不可访问了 3. 从关系上来说,分布式和集群在实践中,很多时候是互相配合使用的.比如分布式的某一个节点,可能由一个集群来代替.分布式架构大多是建立在集群上的.所以实际的分布式架构设计并不会把分布式和集群单独区分,而是统称为分布式架构

3. 微服务架构

当我们按照分布式架构进行业务拆分之后,会有一些重复的功能开发,比如订单系统

在分布式架构下,随着部署的服务越来越,重复的代码也会越来越多,服务的调用关系也会越来越复杂

我们可以把一些通用的,会被多个上层服务调用的共享业务,提取成单独的基础服务,组成一个个微小的服务,这就是微服务

简单来说,微服务就是微小的服务. 小到一个服务只对应一个单一的功能,只做一件事.这个服务可以单独部署运行

微服务之间可以采用REST或者RPC协议进行通信

从这个角度来看,微服务架构实际上就是分布式架构的一种拓展,这种架构模式下它拆分粒度更小,服务更加独立

可以理解为: 微服务是一种经过良好架构设计的分布式架构方案

其中,分布式架构侧重于服务的拆分,拆了就行

而微服务是更细粒度的垂直拆分,通常指的不能再拆分的服务


原文地址:https://blog.csdn.net/m0_60963435/article/details/142466145

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!