统一权限校验:
模拟登陆:Zuul集成Ribbon:Zuul启用重试:Zuul 集成 Hysrix: Hystrix 容错和限流
容错、降级:限流、熔断:断路器打开后,会进入“半开状态”:Hystrix dashboard 仪表盘数据监控:Actuator 添加 actuator:搭建 Hyastrix dashboard:Turbine
统一权限校验: 模拟登陆:http://localhost:3001/item-service/i6juh65g4f3 没有登录,阻止访问
http://localhost:3001/item-service/i6juh65g4f3?jwt=iu5hyg45f34t43y 已经登录,可以访问
1.新建过滤器类 AccessFilter,继承 ZuulFilter
2.按规则实现抽象方法
3.添加 @Component 注解
Zuul 自动配置,会在spring容器中发现过滤器实例,完成自动配置
默认启动 ribbon 的负载均衡
默认不启动用重试
在最前面网关位置重试,会造成大量服务器压力翻倍
添加 spring-retry 依赖
yml配置: zuul.retryable=true
默认已经启用了 Hystrix
Hystrix 容错和限流容错 - 处理远程调用的错误
容错的手段: 降级
限流 - 由于流量过大造成故障,要限制后台模块的访问流量,减轻压力
限流的手段: 熔断
实现 zuul 的接口: FallbackProvider
按规则实现抽象方法
添加 @component 注解
zuul 会自动配置降级类
Hystrix熔断条件,断路器打开条件:
10秒20次请求(必须首先满足)
50%请求出错,执行了降级
尝试向后台模块发送一次客户端调用
如果调用成功,会关闭断路器,恢复正常
如果调用失败,继续保持打开状态
利用 Actuator 来暴露 Hystrix 的监控日志,Hystrix dashboard会抓取日志,对日志进行分析处理
Actuatorspring提供的一个项目指标工具
健康状态
spring容器中所有的对象
springmvc 所有的访问路径
jvm堆内存镜像文件
hystrix 监控日志
1.添加 actuator 依赖
2.yml配置
m.e.w.e.i: “*” # 暴露所有的监控指标
m.e.w.e.i: health,beans,mappings # 暴露感兴趣的指标
m.e.w.e.i: hystrix.stream # 暴露hystrix监控日志
3.访问查看所有监控指标的地址: http://localhost:3001/actuator
1.新建 spring 模块:sp07-hystrix-dashboard
2.添加依赖: hystrix dashboard
3.yml
允许抓取的服务器列表: localhost
4.启动类注解: @EnableHystrixDashboard
浏览器访问: http://localhost:4001/hystrix 从 http://localhost:3001/actuator/hystrix.stream 抓取日志
从多台服务器聚合监控数据,将聚合后的数据交给仪表盘进行处理
1.新建 spring 模块: sp08-turbine
2.添加依赖
turbine
eureka client
3.yml
抓取的模块:zuul
为聚合后的数据命名:new String(“default”)
4.启动类注解: @EnableTurbine



