SpringCloud01——基本理论

240 阅读3分钟

说明:根据尚硅谷SpringCloud整理

一、微服务架构

1、什么是微服务

微服务架构模式的提出者马丁弗勒所说,微服务是一组小的服务、运行在独立进程、以及用轻量级的通信、独立部署特征、相对较少的集中式管理的模式。

可以参考博客(36条消息) 马丁.福勒微服务架构博文译文_Clarence-CSDN博客_马丁福勒

说白了,就是以前一个一个的模块都是跑在一个应用程序上,现在把各个模块拆分成小的服务,独立部署,这样每个服务可以选择合适的方式创建,只需要把它们集中调用即可。

2、分布式微服务都应该包含哪些内容?

分布式微服务基本包含这些内容:

image-20211115110825744

SpringCloud就帮助我们做到了这些内容,分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的集合体,也叫做微服务全家桶。

SpringCloud集成了很多种技术,来满足上面的需求:

img

3、互联网大厂微服务架构

京东的:

京东的

阿里的:

阿里的

京东物流的:

京东物流

一套系统拆分成了大大小小的服务。

二、SpringCloud技术栈

1、技术栈图解

netflix

对应上面分布式微服务的架构:

img

不过有的技术已经过时了,被更新的技术所取代,后面会详细说明。

三、SpringBoot和SpringCloud版本对应

1、源码地址

2、官方文档

可以通过官方文档去学习:

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

我们会发现其中有一段:

image-20211115113148890

这里强力推荐推荐我们将SpringBoot版本从1.5升级到2.0,现在2.0版本比较稳定,那么就选择2.0的版本。

SpringCloud版本

进入官网,可以看到版本如下:

image-20211115113755442

SpringCloud的版本都是选择英国的地铁站名,从A开始往后排序,只要修复了某一个重大bug,就会发布新的版本,这里选用最后的Hoxton版本。

4、如何匹配版本

进入SpringCloud官网(网址上面给了),往下找到这张表:

image-20211115114305773

和SpringBoot版本兼容的对应表,Hoxton版本对应SpringBoot2.2.x或2.3.x。

如果想了解更详细的,进入这个网址:start.spring.io/actuator/in…

image-20211115114722047

TT 版本更新了很多...

5、最终选型

最后各项技术选择以下版本:

image-20211115114936472

最后项目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

从上面也能看出,此次课程都学哪些内容。

对应版本的文档学习(SpringCloud H版和SpringBoot 2.2.2版本):