乐趣区

关于java:SpringCloud学习05

Zuul

Api 网关

  • 微服务零碎对立的调用入口
  • 对立的权限校验
  • 集成 ribbon
  • 集成 hystrix

对立的调用入口

1.zuul 依赖、eureka client 依赖、sp01
2.yml

# 配置调用转发规定
# 上面是 zuul 默认的转发规定
# 如果不手动配置,zuul 能够依据注册表的注册信息进行主动配置
zuul:
  routes:
    item-service: /item-service/**
    user-service: /user-service/**
    order-service: /order-service/***

3. 启动类注解: @EnableZuulProxy

对立权限校验

通过 zuul 过滤器, 能够判断用户是否有权限拜访后盾服务, 如果没有权限能够阻止用户持续拜访
判断用户是否登录, 登录才容许拜访商品服务
http://localhost:3001/item-service/666 没有登录不容许拜访
http://localhost:3001/item-service/666?token=666 有 token 认为登录过, 容许拜访

增加过滤器

1. 继承 ZuulyProxy
2. 增加 @Component

zuul 会对过滤器进行主动配置

zuul 集成 ribbon

默认启用了 ribbon 的负载平衡
默认不启用重试,zuul 不举荐启用重试

启用重试:
1.spring-retry 依赖
2.yml

zuul.retryable=true

3. 重试参数
有默认参数, 能够依据须要进行调整

zuul 集成 hystrix

0 配置, 曾经启用了 hystrix
增加降级代码
1. 实现 FallbackProvider 接口, 在子类中实现降级代码
2.@Component

zuul 的主动配置, 会主动配置降级类

Zuul 和 Feign

  • 都能够调用后盾服务
  • 都能够集成 ribbon
  • 都能够集成 hystri

zuul

  • 部署在所有微服务项目之前
  • 网关个别是一个独立的服务, 与业务无关
  • 不举荐启用重试, 会造成后盾服务压力翻倍, 重试尽量不部署在最后面, 越往后越好

feign

  • 部署在微服务外部, 服务和服务之间调用
  • 不举荐启用 hystrix, 个别在后面进行降级和熔断, 相似于电箱的断路器, 只在入库地位部署, 不在微服务外部部署 hystrix, 否则会引起凌乱

筹备仓库

1. 新建 module: config, 当做一个文件夹, 用来寄存配置文件
2. 把 2,3,4,11 我的项目的配置文件, 放到 config 文件夹
3.springcloud1 工程目录创立本地仓库
4. 把本地仓库提交推送到 gitee 近程仓库

1.ctrl + k 或 VCS-commit
2. 勾选要提交的文件, 填写提交信息, 点击提交
3.ctrl + shift + k 或 VCS - git -push
4. 点击左上角 define remote

配置核心

1.config server 依赖
2.yml

近程仓库 uri: https://gitee.com/wusheng0/SpringCloud.git
搜寻的子目录: config

如果是公有仓库, 还要提供用户名和明码

3.@EnableConfigServer

配置核心客户端

1.config client 依赖
2. 新建配置文件: bootstrap.yml,bootstrap.yml 是疏导配置文件, 他先于 application.yml 加载
3.bootstrap.yml 增加配置

1. 连贯 eureka, 从注册表失去配置核心的地址
2. 连贯配置核心
3. 从配置核心下载指定的配置文件
退出移动版