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.从配置中心下载指定的配置文件

wusheng
12 声望12 粉丝