SpringCloud学习笔记

SpringCloud学习笔记


学自B站狂神说

一、前言

1.学习前提

在这里插入图片描述
在这里插入图片描述

2.SpringCloud五大组件

在这里插入图片描述

3.常见面试题

在这里插入图片描述

二、微服务概述

1.什么是微服务

①微服务

在这里插入图片描述

②微服务架构

在这里插入图片描述
在这里插入图片描述

2.微服务优缺点

①优点

在这里插入图片描述

②缺点

在这里插入图片描述

3.微服务技术栈

在这里插入图片描述

4.核心四问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、SpringCloud入门概述

1.SpringCloud是什么?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.SpringCloud和SpringBoot的关系

在这里插入图片描述

3.Dubbo 和 SpringCloud技术选型

①分布式+服务治理Dubbo

目前成熟的互联网架构,应用服务化拆分 + 消息中间件
在这里插入图片描述

②Dubbo 和 SpringCloud对比

在这里插入图片描述
最大区别:Spring Cloud 抛弃了Dubbo的RPC通信,采用的是基于HTTP的REST方式
Dubbo的定位是一款RPC框架,而SpringCloud的目标是微服务架构下的一站式解决方案。

4.SpringCloud使用步骤

①导入依赖
②编写配置文件
③开启这个功能@EnableXXXX
④编写配置类(配置bean)

四、REST服务者与消费者

①准备工作:数据库

CREATE DATABASE springcloud

CREATE TABLE db01 (
deptno BIGINT(10) NOT NULL AUTO_INCREMENT,
dname VARCHAR(50) NOT NULL,
db_source VARCHAR(100) NOT NULL,
PRIMARY KEY (deptno)
) ENGINE=INNODB DEFAULT CHARSET=utf8

NSERT INTO db01(deptno,dname,db_source) VALUES
(1,‘开发部1’,‘db01’),(2,‘开发部2’,‘db01’),
(3,‘开发部3’,‘db01’),(4,‘开发部4’,‘db01’),
(5,‘开发部5’,‘db01’),(6,‘开发部6’,‘db01’),(7,‘开发部7’,‘db01’)

②新建父工程 shan-springcloud-kuang

1.创建一个普通maven项目(不需要选择archetype);
2.添加maven依赖,由于是父工程,那么直接管理maven版本即可(引入需要的依赖)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

③新建 springcloud-api

1.创建一个普通maven项目(同上)
2.依赖(父项目已有)
在这里插入图片描述

3.创建一个实体类
在这里插入图片描述

④新建服务提供者 springcloud-provider-dept-8001

1.创建一个普通maven项目(同上)
2.依赖(父项目已有)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.application.yml只配置端口即可
在这里插入图片描述
4.写Dao层、Service层、Controller层
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5.手写一个启动类进行测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⑤新建服务消费者 springcloud-consumer-dept-80

1.创建一个普通maven项目(同上)
2.依赖(父项目已有,不用写版本)
在这里插入图片描述
3.application.yml只配置端口即可
在这里插入图片描述
4.Config
在这里插入图片描述
5.Controller
在这里插入图片描述
6.手写启动类
在这里插入图片描述

⑥测试

先启动提供者的启动类[端口8001],然后再启动消费者的启动类[端口80]
然后打开网站
在这里插入图片描述
在这里插入图片描述

五、Eureka

1.理论知识

在这里插入图片描述

2.Enreka简介

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.构建步骤

打开上面服务者与消费者的例子

①新建一个module

=>springcloud-eureka-7001

②导入依赖

在这里插入图片描述

③编写配置文件

在这里插入图片描述

④编写一个启动类且启动测试

在这里插入图片描述
启动若遇到Type javax.xml.bind.JAXBContext not present
可以导入依赖
在这里插入图片描述
在这里插入图片描述

⑤回到springcloud-provider-dept-8001 服务提供者

进行导入依赖->编写配置文件->启动类 开启功能@Enable->测试->修改status
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试:先开启7001启动类 然后开启8001启动类 然后去7001网页
在这里插入图片描述
修改Status
在这里插入图片描述
完善监控信息,在8001 pom.xml依赖加入,然后修改配置文件
在这里插入图片描述
在这里插入图片描述
然后再进7001
在这里插入图片描述
在这里插入图片描述

4.EurEka自我保护机制:好死不如赖活

在这里插入图片描述

5.获取微服务消息【团队开发】

在这里插入图片描述
在这里插入图片描述
【启动7001的前提下,启动8001】
在这里插入图片描述

6.集群环境配置

①new Module [springcloud-eureka-7002+springcloud-eureka-7003]
②然后吧springcloud-eureka-7001的包给7002 7003导入一下
同时吧配置文件和主启动类也复制以下【记得修改端口号】
在这里插入图片描述
在这里插入图片描述
③集群
理论:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后启动7001 7002 7003 在启动8001
在这里插入图片描述

六、 Ribbon:负载均衡(基于客户端-消费者)

1.什么是Ribbon?

在这里插入图片描述

2.Ribbon能干嘛?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.集成Ribbon

①springcloud-consumer-dept-80[消费者]向pom.xml中添加Ribbon和Eureka依赖
在这里插入图片描述
②springcloud-consumer-dept-80配置文件
在这里插入图片描述
③主启动类加上@EnableEurekaClient注解,开启Eureka
在这里插入图片描述
④配置实现负载均衡
在这里插入图片描述
⑤修改conroller:DeptConsumerController.java
在这里插入图片描述

4.使用Ribbon实现负载均衡

在这里插入图片描述
在这里插入图片描述
步骤:在这里插入图片描述
注意:在这里插入图片描述
8001 8002 8003三个配置文件的这个application.name要一样
在这里插入图片描述
测试访问http://localhost/consumer/dept/list=>发现是依次有顺序的三个数据库的数据

5.如何切换或者自定义规则呢?

①springcloud-provider-dept-80模块下的ConfigBean中进行配置,切换使用不同的规则
在这里插入图片描述
②自定义规则
在myRule包下自定义一个配置类MyRule.java,注意:该包不要和主启动类所在的包同级,要跟启动类所在包同级
在这里插入图片描述
自定义的规则(这里我们参考Ribbon中默认的规则代码自己稍微改动):MyRandomRule.java
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
③主启动类开启负载均衡并指定自定义的MyRule配置类并测试在这里插入图片描述
测试了 确实5次之后才会换结果[换一个数据库]

七、Feign:负载均衡(基于服务端)

1.简介

在这里插入图片描述
Feign能干什么?在这里插入图片描述
在这里插入图片描述

2.Feign的使用步骤

①创建springcloud-consumer-fdept-feign模块
②完全拷贝springcloud-consumer-dept-80【之后进行修改,进行区分】
③导入依赖
给springcloud-consumer-fdept-feign和springcloud-api都导入依赖在这里插入图片描述
④接口【springcloud-api】在这里插入图片描述
⑤主启动类【springcloud-consumer-fdept-feign】在这里插入图片描述
⑤修改Controller【springcloud-consumer-fdept-feign】
原先Ribbon实现在这里插入图片描述
修改成Feign实现在这里插入图片描述
⑥测试
启动7001 8001 8002 在启动Feign主启动类 在这里插入图片描述
测试成功

八、Hystrix:服务熔断

分布式系统面临的问题:杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免失败!

1.服务雪崩

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.什么是Hystrix?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.Hystrix能干嘛?

在这里插入图片描述

4.服务熔断[服务端]

在这里插入图片描述
在这里插入图片描述
步骤:①新建springcloud-provider-dept-hystrix-8001模块
②拷贝springcloud-provider-dept–8001的所有内容
③导入依赖
在这里插入图片描述
④修改配置文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
⑤修改Controller
在这里插入图片描述
⑥主启动类在这里插入图片描述
⑦测试
使用熔断,当访问一个不存在的id时在这里插入图片描述
不使用熔断,当访问一个不存在的id时在这里插入图片描述
在这里插入图片描述

5.服务降级[客户端]

当某一时间内服务A的访问量暴增,而B和C的访问量较少,为了缓解A服务的压力,这时候需要B和C暂时关闭一些服务功能,去承担A的部分服务,从而为A分担压力,叫做服务降级。
在这里插入图片描述
在这里插入图片描述
案例步骤:①在springcloud-api模块下的service包中新建配置类
降级配置类DeptClientServiceFallBackFactory.java
在这里插入图片描述
②springcloud-api模块下的service使用降级在这里插入图片描述
③在springcloud-consumer-fdept-feign的配置文件开启降级在这里插入图片描述
④springcloud-consumer-fdept-feign主启动类要增加扫描在这里插入图片描述
⑤测试:启动7001 8001 feign[80]在这里插入图片描述

6.熔断与降级区别

在这里插入图片描述
在这里插入图片描述

7.Dashboard 流监控

步骤:①新建springcloud-consumer-hystrix-dashboard模块
②导入依赖
在这里插入图片描述
在这里插入图片描述
③配置文件
在这里插入图片描述
④查看提供者【8001、8002、8003】是否有依赖在这里插入图片描述
⑤主启动类在这里插入图片描述
⑥启动主启动类,访问http://localhost:9001/hystrix在这里插入图片描述
⑦springcloud-provider-dept-hystrix-8001,然后启动在这里插入图片描述
⑧测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

九、Zuul路由网关

1.什么是zuul?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.Zuul入门案例

步骤:①新建springcloud-zuul模板
②导入依赖在这里插入图片描述
在这里插入图片描述
③配置文件在这里插入图片描述
④增加一个地址在这里插入图片描述
⑤主启动类,启动7001 8001 和这个9527在这里插入图片描述
⑥访问http://localhost:7001/在这里插入图片描述
⑦测试在这里插入图片描述
访问http://www.studykuang.com:9527/springcloud-provider-dept/selectById/1在这里插入图片描述
在这里插入图片描述
⑧修改配置文件并启动测试在这里插入图片描述
访问http://www.studykuang.com:9527/mydept/selectById/1在这里插入图片描述
在这里插入图片描述
再次修改配置文件=>让原来的失效在这里插入图片描述
在这里插入图片描述
再次修改配置文件=>增加前缀,忽略所有微服务名字在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

十、Spring Cloud Config 分布式配置

1.分布式系统面临的配置文件的问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.分布式配置能干什么?

在这里插入图片描述
在这里插入图片描述

3.入门案例

Ⅰ:准备工作

①生成SSH公钥

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
新生成的这两个中在这里插入图片描述
在码云的个人设置中在这里插入图片描述

②从码云仓库吧东西克隆过来

在这里插入图片描述
然后在你要放代码的地方右键->Git Bash here
在这里插入图片描述

③新建一个application.yml并编写代码

在这里插入图片描述

④同样在Git Bash here 吧刚才新建的东西放在码云仓库上

首先需要说明你是谁
在这里插入图片描述
然后再去上传在这里插入图片描述

Ⅱ:服务端

步骤:①新建springcloud-config-server-3344模板
②导入依赖在这里插入图片描述
③配置文件在这里插入图片描述
在这里插入图片描述
④主启动类,然后启动在这里插入图片描述
⑤测试在这里插入图片描述

Ⅲ:客户端

步骤:①准备工作,新建一个config.client.yml 然后上传到码云仓库在这里插入图片描述
②新建一个模板springcloud-config-client
③导入依赖在这里插入图片描述
④配置文件在这里插入图片描述
⑤编写Controller看是否从远程仓库拿到代码在这里插入图片描述
⑥主启动类,并启动测试[先启动3344,再启动这个]在这里插入图片描述
启动3344,先测试3344是否成功连接远程仓库在这里插入图片描述
再启动客户端,成功在这里插入图片描述

4.小案例

步骤:①准备工作:新建config-dept.yml和config-eureka.yml并上传到码云仓库在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
②新建springcloud-config-eureka-7001模块,并将原来的springcloud-eureka-7001模块下的内容拷贝的该模块
③导入依赖在这里插入图片描述
④清空配置文件,创建application.yml和bootstrap.yml配置文件在这里插入图片描述
⑤启动3344再启动这个启动类,并测试在这里插入图片描述
先启动3344,访问http://localhost:3344/master/config-eureka-dev.yml在这里插入图片描述
后启动这个启动类,访问http://localhost:7001在这里插入图片描述
⑥新建springcloud-config-dept-8001模块并拷贝springcloud-provider-dept-8001的内容
⑦导入依赖在这里插入图片描述
⑧清空配置文件,创建application.yml和bootstrap.yml配置文件在这里插入图片描述
⑨启动并测试
在这里插入图片描述
启动3344,之后访问http://localhost:3344/master/config-eureka-dev.yml在这里插入图片描述
之后启动7001和这个启动类,访问访问http://localhost:7001在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值