统一的入口
统一的权限校验
继承Ribbon
继承Hystrix
统一的入口
1.新建spring模块 sp06zuul
2.添加pom依赖
zuul
eureka client 需要注册注册中心
sp01 继承
3.yml
路由转发规则
#下面这段是默认配置 zuul 根据注册表的注册信息可以实现默认配置
#尽量手动配置,防止注册表不全
zuul:
routes:
item-service: /item-service/** #包含当前包路径和所有子路径
user-service: /user-service/**
order-service: /order-service/**
4.启动类的注解:@Enable
统一的权限校验
模拟登录检查
http://localhost:3001/item-service/qweqw 没有登录,不允许访问
http://localhost:3001/item-service/qweqw?token=wqeqw 已经登录,允许访问
1.新建过滤器,继承ZuulFilter
2.按照规则实现zuulFilter
3.添加注解:@Component
zuul的自动配置类 会自动配置过滤器
zuul集合 Ribbon
默认启动了负载均衡
默认不启用重试
一般不在网关添加重试功能,否则可以后台服务压力翻倍,出现大面积故障。(越靠后越好)
重试功能 应该尽量靠后添加
Zuul启用重试
1.添加依赖:spring-retry
2.yml配置:zuul.retryable=true
重试默认得参数
MaxAutoRetries:0
MaxAutoRetriesN
1.新建降级类,实现FallbackProvider 接口
2.按接口规则进行实现
3.添加注解:@Component
zuul 得自动配置类可以完成自动配置
Hystrix 熔断
流量过大,出现故障,可以熔断,断开链路,减轻后台服务得压力
熔断得触发条件:
10秒20次请求 (必须首先满足) if (20) 才会去判断50% 失败
50%请求出错
断路器打开后一段时间,会进去“半开状态”
半开状态下: 会尝试发送一次客户端调用
调用成功,关闭断路器恢复正常
调用失败,继续保持打开状态
Hystrix数据监控-Hystrix Dashboard
1.新建spring模块,sp07-hystrix-dashboard
2.添加依赖:hystrix dashboard
3.yml配置:
允许抓取的服务器列表:localhost
4.启动类的注解: @EnableHystrixDashboard
访问:http://localhost:4001/hystrix
Turbine
从多台服务器抓取日志,进行聚合
Hystrix Dashboard 可以从turbine抓取聚合后的日志数据
1.新建spring模块:sp08-turbine
2.添加pom依赖:
1.turbine ----通过服务ID来抓取的
2.eureka client
3.yml配置:
抓取的服务ID:(多个)zuul,a,b,c,
为聚合后的数据命名:new String("default")
4.启动类注解:@EanbleTurbine
5.访问聚合日志: http://localhost:5001/turbine.stream
spring cloud config 配置中心
eureka 注册中心
config 配置中心
nacos是注册中心也是配置中心
集中的管理和维护配置文件
准备git仓库
限制本地准备一个文件夹存放2.3.4的配置文件,在吧文件夹放到git仓库
1.在gitee创建仓库(已经有仓库的同学不用重复做)
srping cloud1
开源
2.分别把3个yml配置文件丢在一个当前项目的文件夹内
3.创建本地仓库(已经有仓库的同学不用重复做)
搭建配置中心
1.新建springmokuai :sp09-config
2.添加依赖:
eurekaclient
config server
3.yml
git仓库地址:https://gitee.com/oky12000/springcloud1.git
仓库中的文件夹:config
4.启动类注解:@EnableConfigserver
配置中心的客户端
1.把,2,3,4中的application.yml都注释掉
2.添加依赖:config lient
3.添加新的配置文件:bootstrap.yml
eureka地址--需要得到euraka配置主机的地址
设置配置中心的服务id
下载的配置文件
检查确认
1.按顺序启动项目
2.09-config
3.03-user
2.检查配置中心
1.注册表中又config-server
2.http://localhost:6001/item-service/dev
3.http://localhost:6001/user-service/dev
4.http://localhost:6001/order-service/dev
RabbitMQ
消息服务,消息队列,消息中间件 brokeer
常见的消息服务器:
rabbitmq
acivemq
rocktmq --- 阿里的服务器
kafka
tubemq
搭建rabbitmq服务器
1.vMware 16以上
##nat网络网段
192.168.64.0
编辑--虚拟网络编辑器---选择vmnet8--左下角 192.168.64.0
centos-8-2105.zip
centos-7-1908.zip
1.解压缩,双击.
虚拟机
已经做了几步基础配置
1.阿里的yum安装源和配置
2.