系统架构的演变过程

01、概述

1、系统架构大体经历了一下几个过程

单体应用架构

垂直应用架构

分布式架构

SOA架构

微服务架构

02、单体应用架构

1、组成部分

前台页面

后台管理

前台个人中心

2、优点

架构图简单易懂

对于一些小型项目来讲,开发维护简单

3、部署

部署到一个单点tomcat上就可以了

后期维护也很简单

4、缺点

对大型项目来讲,所有的功能都集中在一个项目里面,维护起来比较困难

模块之间是紧密耦合的,一旦一个模块出现了问题,可能整个应用都不能用,容错率低

无法针对某一个模块进行水平扩展或优化

03、垂直应用架构

1、什么是垂直应用架构

从单体应用演变而来的项目应用架构方式

2、项目组成

前台系统

后台管理系统

个人中心系统

3、与单体应用的区别

每一个组成部分,会单独部署到具体的Tomcat上

根据用户的需求,调用不同的组成模块

可以针对其中的某个具体模块做水平扩展(优化,负载)了

4、优点

系统拆分之后,可以进行水平扩展和优化

提高了单点容错性

5、缺点

系统之间无法相互调用(因为完全独立)

会有一部分代码重复,项目越大,重复代码可能会越多

04、分布式应用架构

1、项目组成

前台页面系统

个人中心系统

后台管理系统

用户服务

提供个人中心系统调用

提供后台管理系统调用

商品服务

订单服务

2、图解

看图思路:

要看成上面一层,下面一层

上面一层是提供给用户访问的

下面一层是抽取可能重复的代码,提供具体的服务

3、优点

抽取公共代码为服务层,增强代码的复用性

4、缺点

结构太混乱了,仅仅三个服务,画图(如上图)就乱得不行

维护困难

05、SOA架构

1、核心作用

解决分布式架构错综复杂的调用关系

引入了“服务治理中心”的概念,来管理各种服务

2、SOA架构图解

3、优点

使用服务治理中心帮我们维护复杂的调用关系

4、缺点

服务有依赖性,可能会因为一个服务的问题,导致多个系统不可用

产生的原因是拆分得不够彻底

06、微服务架构

1、什么是微服务架构

提倡的是服务的“原子化拆分”,和MySQL的原子化一样,即就是不能再拆了,拆到了最小为止

每个最小的微服务也叫作中间件

2、微服务图解

3、优点

服务原子化拆分,可以独立打包,部署和升级,保证每个微服务清晰的任务划分,利于扩展

微服务之间采用Restful等轻量级的HTTP协议相互调用

4、缺点

分布式系统开发的技术成本高

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200409A0P2B800?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券