springcloud学习第五天

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/u4432cf44 没有登陆不允许访问
http://localhost:3001/item-service/u4432cf44?token=cf44y4 有token认为登陆过 允许访问

添加过滤器

1.继承ZuulProxy
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
  • 都可以集成hystrix

zuul

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

feign

  • 部署在微服务内部,服务和服务之间的调用
  • 不推荐启用hystrix
    一般在最前面进行降级和熔断,类似于电箱断路器,只在入户位置部署,
    不再微服务内部部署hystrix 否则会引起混乱

准备本地仓库

1.新建module: config 当做一个文件夹 用来存放配置文件
2.把2,3,4,11项目的配置文件 放到config文件夹
3.springcloud1工程目录创建本地仓库
1.VCS-Import into version control-Create git repository
2.选择springcloud1工程目录设置为本地仓库
4.把本地仓库推送到gitee远程仓库
1.ctrl+k或VCS-commit
2. 勾选要提交的文件 填写提交信息 点击提交
3. ctrl+shift+k或vcs-git-push
4.

说明:

item-service-dev.yml 开发

-test 测试
-prod 生产

#防止配置中心的配置覆盖应用本地的覆盖
cloud:
config:
override-none: true

配置中心

1.config server依赖
2.yml

https://gitee.com/lu_yingqiang/springcloud1
搜索的子目录:config
如果是私有仓库 还要提供用户名和密码

配置中心客户端

1.config client 依赖
2.新建配置文件:bootstrap.yml
bootstrap.yml是引导配置文件 它先于application.yml加载
3.bootstrap.yml添加配置
1.连接eureka,从注册表得到配置中心的地址
2.连接配置中心
3.从配置中心下载指定的配置文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值