spring cloud:单体架构、集群架构、分布式架构、SOA架构、微服务架构

原文链接:https://www.longkui.site/program/development/spring-cloud1/5728/

1.单体架构
单体架构也称单体应用,是将一个项目全部部署在一台服务器上面,所有服务都由这一台服务器提供。
在这里插入图片描述
这是一种比较传统的架构风格,一般把前台后台都放在一起,通过web服务器(tomcat、nginx、Apache、IIS等)把后台服务运行起来,然后对外提供web服务。

以常见的MVC 框架为例,把表示层、业务层、数据访问层和数据库等放在同一个服务器上,然后进行运行。
单体架构的优点是足够简单,部署起来也比较容易。缺点是随着功能的增加,整个项目越来越复杂,修改一处bug就容易造成整个系统的崩溃,而且伸缩性和扩展性受限。
2.集群架构
当用户数量增多时,服务器的压力越来越大,容易容易引起服务器崩溃。
在这里插入图片描述
这个时候有人想到了集群的方式,就是将同一份代码部署在不同的服务器上,然后对外提供服务。简单来说就是将单体应用复制了好多份,这样每个单体应该都可以作为其他单体应用的备份,在其中一个单体应用崩溃后,其他单体应用还可以继续提供服务。
在这里插入图片描述
集群的优点就是 扩展容易、易部署,无需改动任何的项目代码,只需要新增服务器部署相同的应用并配置好负载均衡,就可以很好的减轻随着业务增量带来的系统压力。

缺点也很明显:业务发展到一定程度,无论再怎么增加节点,整个集群性能提升效果不明显。
3.分布式架构
分布式架构就是多个人协同共同完成一件事。比如,我们的目的是吃饺子。

单体架构就是一个人负责 ”擀皮“、”剁馅“、”包饺子“、”煮饺子“这几个步骤。

集群架构就是多个人,每个人都负责 ”擀皮“、”剁馅“、”包饺子“、”煮饺子“这几个步骤。

分布式还是多个人,但是不是每个都负责四道工序,而是每个人只负责其中一个工序,比如,有的人只负责”擀皮“,有的人只负责”剁馅“等等。

其应用情形有很多种,如果以”吃饺子“为例,可以有以下 比较侠义的 ”吃饺子“模型和 广义的”吃饺子“模型

比如下面这个 侠义的分布式框架,把原有的功能拆解成4部分,每部分都负责自己功能,大家互相不干扰。缺点也很明显, 其中一个节点出问题,其他的节点不能独立完成整个功能。
在这里插入图片描述
下面这个图是也是比较常见的 按照垂直拆分的 分布式框架,同样的,如果其中一个节点出了问题,其他节点也不能独立完成任务。所以设计分布式的时候尽量将每个节点的功能独立。

在这里插入图片描述
下面这个图是一个广义的分布式架构,可以看出我们有两台服务器可以”擀皮“,一台服务器可以”剁馅“。而且精简业务后发现,”擀皮“和”剁馅“可以同步进行,于是有了下面这样的结构。广义的分布式架构借鉴了集群的思想将每个独立的功能进行集群,而且可以根据系统的访问量决定部署多少台服务器(部分云服务器可以实现动态扩容)
在这里插入图片描述
当然,上面这个图也有描述不确切的一点, 同一个功能的数据库应该像集群那样,连接同一个数据库。
4.SOA架构
SOA是Service Oriented Architecture的缩写,面向服务架构,是一种在计算机环境中设计、开发、部署和管理离散模型的方法。在SOA模型中,所有的功能都被定义成了独立的服务,所有的服务通过服务总线(EBS)或流程管理器来连接。它并是一套完整的开发框架,而是一种开发思想。

为了实现这种思想,一般通过Web Service、企业服务总线和服务注册表。

这个地方不对web service、企业服务总线和服务注册表做具体展开。

我们以下面这幅图为例,一个商城服务里拆分出订单服务和支付服务,如下图:
在这里插入图片描述
如果单独看上图的话和分布式的架构没有太多区别。但是,我们忘了一件事,SOA是面向服务的架构,又叫服务治理。把应用程序拆分成多个功能模块,不同的功能模块又拆分成多个表现层,多个服务层。表现层和服务层没有耦合关系,表现层可以调用任意一个服务层。每个服务层中包含多个业务逻辑服务,只需要对外提供服务即可。每个表现层也有多个服务,只需接收、返回数据和页面交互。不同服务之间,不同功能模块之间通过相互依赖或者采用 ESB 作为服务间通信的关键组件,负责服务定义、服务路由、消息转换、消息传递,总体上是重量级的实现,来完成相互通信的,最终提供一系列的功能。SOA就是帮助我们把服务之间调用的乱七八糟的关系给治理起来,然后提供一个统一的标准(各系统的协议、地址、交互方式)。以前是服务与服务之间互相交互,现在是只对数据总线(ESB)进行交互,这样系统就变得统一起来。SOA比分布式架构更加解耦合,扩展也更容易。
在这里插入图片描述
5.微服务架构
微服务架构和和SOA架构非常类似,是一个层面的东西,只不过微服务比SOA更加拆分的“彻底化”。

微服务的核心组件一般包括 注册中心、服务网关、服务熔断、分布式配置中心、负载均衡等。
在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值