说明:根据尚硅谷SpringCloud整理
一、微服务架构
1、什么是微服务
微服务架构模式的提出者马丁弗勒所说,微服务是一组小的服务、运行在独立进程、以及用轻量级的通信、独立部署特征、相对较少的集中式管理的模式。
可以参考博客(36条消息) 马丁.福勒微服务架构博文译文_Clarence-CSDN博客_马丁福勒
说白了,就是以前一个一个的模块都是跑在一个应用程序上,现在把各个模块拆分成小的服务,独立部署,这样每个服务可以选择合适的方式创建,只需要把它们集中调用即可。
2、分布式微服务都应该包含哪些内容?
分布式微服务基本包含这些内容:
SpringCloud就帮助我们做到了这些内容,分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的集合体,也叫做微服务全家桶。
SpringCloud集成了很多种技术,来满足上面的需求:
3、互联网大厂微服务架构
京东的:
阿里的:
京东物流的:
一套系统拆分成了大大小小的服务。
二、SpringCloud技术栈
1、技术栈图解
对应上面分布式微服务的架构:
不过有的技术已经过时了,被更新的技术所取代,后面会详细说明。
三、SpringBoot和SpringCloud版本对应
1、源码地址
- SpringBoot源码:github.com/spring-proj…
- SpringCloud源码:github.com/spring-proj…
2、官方文档
可以通过官方文档去学习:
- SpringBoot:Spring Boot
- SpringCloud:Spring Cloud
2、选型介绍
SpringBoot是用来开发服务的,而SpringCloud是整个分布式微服务开发的落地,所以我们要开发业务就要在SpringCloud中使用SpringBoot,那么SpringCloud的版本要和SpringBoot的版本对应清楚。SpringCloud一般使用字母来表示版本,而SpringBoot则使用数字表示版本。
这系列的视频分为上篇和下篇,上篇采用SpringBoot 2.X版和SpringCloud H版;下篇采用SpringCloud Alibaba。
SpringBoot版本
SpringBoot的版本选择,进入这个网址Spring Boot 2.0 Release Notes · spring-projects/spring-boot Wiki · GitHub
我们会发现其中有一段:
这里强力推荐推荐我们将SpringBoot版本从1.5升级到2.0,现在2.0版本比较稳定,那么就选择2.0的版本。
SpringCloud版本
进入官网,可以看到版本如下:
SpringCloud的版本都是选择英国的地铁站名,从A开始往后排序,只要修复了某一个重大bug,就会发布新的版本,这里选用最后的Hoxton版本。
4、如何匹配版本
进入SpringCloud官网(网址上面给了),往下找到这张表:
和SpringBoot版本兼容的对应表,Hoxton版本对应SpringBoot2.2.x或2.3.x。
如果想了解更详细的,进入这个网址:start.spring.io/actuator/in…
TT 版本更新了很多...
5、最终选型
最后各项技术选择以下版本:
最后项目xml文件中中引入如下依赖即可匹配相应SpringBoot和SpringCloud版本:
<!-- 子模块继承之后,提供作用:
锁定版本+子modlue不用写groupId和version -->
<dependencyManagement>
<dependencies>
<!--spring boot 2.2.2-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.2.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--spring cloud Hoxton.SR1-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--spring cloud alibaba 2.1.0.RELEASE-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
四、SpringCloud技术栈的更新情况
1、停更
很多技术已经停更了,也就是:
- 被动修复bugs:只有那些特别影响使用的才可能去修复,小bug如果你愿意用自行修复
- 不再接收合并请求:不再进行代码的合并工作
- 不再发布新版本了:不推荐使用了,可能已过时,但如果想用还可以用
2、详细说明
直接上图:
从上面也能看出,此次课程都学哪些内容。
对应版本的文档学习(SpringCloud H版和SpringBoot 2.2.2版本):
- SpringCloud:cloud.spring.io/spring-clou…
- SpringCloud中文文档:www.bookstack.cn/read/spring…
- SpringBoot:docs.spring.io/spring-boot…