微服务架构演变

1、单体架构

单体应用架构也叫集中式架构,在单体应用架构中,系统将所有的功能包括前端、后端等全部打包在一起部署,所有的代码都写在一起,通常也是交由一个小的技术团队开发。

在这里插入图片描述

优点

  • 项目架构简单,开发成本低
  • 项目部署在一个节点上,维护方便

缺点

  • 代码耦合度太高,开发维护困难
  • 无法针对不同模块进行针对性优化
  • 系统容错率低,如果该系统一个模块出现不可用会导致整个系统无法使用

2、垂直架构

当访问量逐渐增大,单一应用无法满足需求,我们就需要增加节点来提供系统的访问能力,但是并不是所有的模块都需要进行性能的提高,这时候单体应用架构无法满足我们的需求。

我们需要将系统里面的模块进行拆分,这样对于后面的水平扩容是非常友好的。

在这里插入图片描述

优点

  • 系统拆分实现了流量分担,提高了系统并发量
  • 垂直架构中可以针对不同模块进行针对性优化
  • 方便水平扩展,负载均衡,系统容错率提高

缺点

  • 系统间相互独立,会有很多重复开发工作,影响开发效率
  • 系统间相互独立,无法进行系统数据共享(互相调用)

3、分布式架构

当垂直应用越来越多,重复的业务代码就会越来越多,并且在垂直架构中应用之间的交互不可避免,此时,为了解决基础代码重复太多,应用之间的调用等问题,我们将重复的代码抽取出来作为独立的服务,对外提供服务

在这里插入图片描述

优点

  • 将基础服务进行了抽取,系统间相互调用,提高了代码复用和开发效率

缺点

  • 系统间耦合度变高,调用关系错综复杂,难以维护

4、SOA架构

在分布式架构下,当服务越来越多,容量的评估,小服务资源等浪费等问题逐渐显现,此时需要增加一个调度中心对集群进行实时管理集群容量

在这里插入图片描述

优点

  • 服务注册中心,实现服务自动注册和发现,无需人为记录服务地址
  • 动态监控服务状态监控报告,人为控制服务状态
  • 服务负载均衡,服务熔断保护,服务健康检测,服务注册与发现,服务缓存等等

缺点

  • 服务关系复杂,运维、测试部署困难

5、微服务架构

微服务架构模式是从SOA架构模式演变过来的,比SOA架构粒度更加精细,让专业的人做专业的事情,目的是提高效率,每个服务与服务之间互不影响,微服务架构中每个服务独立,互不影响

在这里插入图片描述

微服务特点

  • 单一职责:微服务中每一个服务都对应唯一的业务能力,做到单一职责
  • 微:微服务的服务拆分粒度很小,例如一个用户管理就可以作为一个服务,每个服务虽小,但五脏俱全
  • 面向服务:每个服务都要对外暴露服务接口API,并不关心服务的技术实现,做到平台和语言无关,也不限定用什么技术实现,只要提供API接口即可
  • 自治:服务间互相独立,互不干扰
    • 团队独立:每个服务都是一个独立的开发团队
    • 技术独立:因为是面向服务,提供接口,使用什么技术没有别人干涉
    • 前后端分离:采用前后端分离开发,提供统一的接口,后端不用再为PC、移动端开发不同接口
    • 数据库分离:每个服务都使用自己的数据源
      什么技术没有别人干涉
    • 前后端分离:采用前后端分离开发,提供统一的接口,后端不用再为PC、移动端开发不同接口
    • 数据库分离:每个服务都使用自己的数据源
    • 部署独立:服务间虽然有调用,但要做到服务重启不影响其他服务,有利于持续集成和持续交付,每个服务都是独立的组件,可复用、可替换、降低耦合,易维护
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘程云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值