文章目录
- 随堂笔记
- 笔记乱码问题
- 课程安排(17到18天)
- Spring Cloud
- 业务模块
- 注册和发现
- 作业
- Springboot 和 Springcloud 版本
- 服务提供者
- sp02商品,和 sp05 eureka 集群
- 远程调用
- Hystrix
- Feign
- 虚拟机
- Rabbitmq 虚拟机
- 订单中添加 feign,调用商品和用户
- Turbine
- 消息服务器
- Zuul
- Zuul 和 Feign
- 准备仓库
- 配置中心
- rabbitmq工作模式
- 导入拼多商城项目
- 链路跟踪
- solr
- Docker 虚拟机
- Docker
- 目录挂载
- 数据卷挂载
- 端口映射
- 容器互联
- 构建 tomcat:7 镜像
- 构建 eureka 镜像
- redis
- web+mysql
- Kubernetes
- 配置集群环境
随堂笔记
这是随堂笔记, 详细内容请参考在线笔记:
https://blog.csdn.net/weixin_38305440
笔记乱码问题
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nczlVKT6-1611627651529)(note.assets/image-20200613174552258.png)]
课程安排(17到18天)
- Spring Cloud(6)
- RabbitMQ(2)
- Lucene Solr(1)
- Docker(2)
- Kubernetes(3)
- 分布式事务(3)
- RocketMQ(1)
王海涛
Spring Cloud
环境
-
IDEA 或 Eclipse(STS插件)
-
Lombok
-
Maven
- 如果下载依赖有问题,更换阿里仓库和中央仓库
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"> <localRepository>D:\home\java\maven_repository</localRepository> <mirrors> <!-- 打开阿里仓库,使用阿里仓库更新依赖 注释调用阿里仓库,使用中央仓库更新依赖 --> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> </settings>
-
微信:wanght6666666
-
笔记:code.tarena.com.cn
-
csdn 笔记:https://blog.csdn.net/weixin_38305440/article/details/108609574
-
代码仓库:https://gitee.com/benwang6/cgb2007
spring cloud是什么
-
spring cloud 是一个工具集
- 集成多个工具,来解决微服务中的各种问题
- 微服务全家桶
-
spring cloud 不是什么?
- spring cloud 不是一个解决单一问题的工具
-
远程调用 - RestTemplate
-
负载均衡 - Ribbon
-
重试 - Ribbon
-
降级、熔断、限流 - Hystrix
-
监控 - Hystrix Dashboard、Turbine、Sleuth、Zipkin
-
配置中心 - Config server
-
…
课程要求
必须严格按照笔记做
笔记中都是完整代码
做的过程中不能直接 cv ,要自己手敲!!!
如果遇到问题解决不了时,把前面做的一步代码cv一遍!!!
业务模块
02-item
03-user
04-order
-
工具类 - 不用自己写,在gitee或github搜索
CookieUtil、JsonUtil、JsonResult
-
TypeReference
指定转换的类型: new TypeReference<List>() {}
-
@RequestBody
用来接收参数,从请求的协议体,完整接收协议体数据
注册和发现
注册中心产品:
zookeeper、eureka、nacos、consul、etcd…
eureka
- 注册
服务提供者启动时,向eureka一次次反复注册,直到注册成功为止
- 拉取注册表
服务发现者每30秒拉取一次注册表(刷新注册表)
- 心跳
服务提供者每30秒发送一次心跳数据
eureka连续3次收不到一个服务的心跳,会删除这个服务
- 自我保护模式
特殊情况
如果由于网络不稳定或中断,15分钟内,85%以上服务器出现心跳异常,就会自动进入保护模式。
在保护模式下,所有服务都不删除。
网络恢复后,可以自动退出保护模式,恢复正常
开发期间很容易达到保护模式的条件,会影响测试,在开发期间可以关闭保护模式
eureka 和 zookeeper 区别:
- eureka:
- 强调AP(可用性)
- 集群结构:对等结构
- zookeeper:
- 强调CP(一致性)
- 集群结构:主从结构
搭建eureka服务器
- 新建 springboot 项目
- 添加 eureka server 依赖
- yml配置
- 主机名
- 禁用保护模式
- 针对单台服务器,配置不向自己注册,也不从自己拉取注册表
- 启动类注解 @EnableEurenaServer,通过注解触发自动配置
单台 eureka 服务器启动后报错:
Connect to localhost:8761 timed out
-
这是自动配置的一个默认集群服务器,但是这个默认服务器不存在,所以出错
后面自己搭建了集群服务,默认服务器就不会再自动配置
作业
- 提前下载最新依赖
课前资料\pom.xml
新建一个 maven 项目,把 pom.xml 代码粘进去,修改版本
-
springboot:
2.4.0
-
springcloud:
2020.0.0-M5
- pom.xml末尾添加
<repositories> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> </repository> </repositories>
然后更新依赖
- 安装新版 VMware
先卸载旧版本(江哥虚拟机镜像不会受影响)
再安装新版本
尽量用最新VMware,新版本对资源使用、运行效率都会有优化。
课前资料中提供了两个版本
- 15.5.2
- 12.x - 旧电脑cpu不支持虚拟化技术,可以使用12.x
官网还有有最新的 16 版本
Springboot 和 Springcloud 版本
- springboot:
2.3.5.RELEASE
- springcloud:
Hoxton.SR9
02、03、04、05,都改
服务提供者
修改hosts文件,添加 eureka1 和 eureka2 的映射配置
C:\Windows\System32\drivers\etc\hosts
127.0.0.1 eureka1
127.0.0.1 eureka2
修改 02、03、04 这三个项目
- 添加 eureka client 依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>
spring-cloud-starter-netflix-eureka-client
</artifactId>
</dependency>