先了解一下项目的架构历程:单体架构------>分布式架构------>微服务架构

1.1 单体架构

单体架构:将业务的功能集中到一个项目中开发,打成一个包部署。

1.认识微服务_分布式架构

优点

  • 架构简单
  • 部署成本低

缺点

  • 耦合度高,依赖关系强,维护和升级困难

1.3 分布式架构

分布式架构:根据业务功能对系统拆分,每个业务功能模块作为独立项目开发,称为一个服务。

1.认识微服务_Cloud_02

优点

  • 降低服务耦合
  • 有利于服务升级和拓展

缺点

  • 服务调用关系错综复杂

思考

  • 服务拆分粒度如何界定,即拆分到什么阈值
  • 服务之间如何调用
  • 服务的调用关系如何管理

1.4 微服务架构

微服务设计原则

  • 单一职责:微服务拆分粒度更小,每一个服务对应唯一的业务能力,做到单一职责;
  • 服务自治:团队独立、技术独立、数据独立、独立部署和交付;
  • 面向服务:服务提供统一标准接口,与语言和技术无关;
  • 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题。

微服务是一个经过良好架构设计的分布式架构方案

1.5 SpringCloud

SpringCloud是目前国内使用最广泛的微服务框架。官网地址:https://spring.io/projects/spring-cloud

该框架集成了各种微服务功能的组建,并基于SpringBoot实现这些组价的自动装配,从而提高了良好的开箱即用体验。

常见组件如下图

1.认识微服务_分布式架构_03

由于SpringCloud依赖于SpringBoot,并且有版本兼容问题,SpringCloud与SpringBoot的对应版本如下图

1.认识微服务_Cloud_04

我的项目中使用的SpringBoot是2.3版本的,因此对应的SpringCloud版本可以使用跟黑马教程相同的Hoxton.SR10.

1.6 小结

  • 单体架构:简单方便、耦合高、扩展性差,适合小型项目。如学生管理系统。
  • 分布式架构:耦合低、扩展性好、架构复杂、难度大。适合大型互联网项目,如京东、淘宝。
  • 微服务架构:一种良好的分布式架构方案。相对于分布式架构,微服务架构拆分粒度更小、服务更独立、耦合度更低;架构非常复杂、运维、监控、部署难度更高。