Zuul介绍
路由+过滤器 = Zuul
核心是一系列的过滤器
Zuul的四种过滤器API
前置(PRE)
后置(POST)
路由(Route)
错误(Error)
Zuul组织架构图
Zuul Fillter生命周期
二、Zuul的使用
1 创建工程
选择Config Client
选择Eureka Discovery
选择Zuul
最后,点击完成
2、增加配置
bootstrap.xml 文件
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
spring:
application:
name: api-gateway
cloud:
config:
discovery:
enabled: true
service-id: CONFIG
profile: dev
3、启动后查看Erueka
已经多了一个API-GATEWAY
4、增加EnableZuulProxy注解
5、增加访问API-Gateway的时候,路由到Product服务下的list商品列表接口,如下图
访问API-Gateway。
第一个product代表eureka下的Application的名称
调用Post接口,如下图
6、自定义路由
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
spring:
application:
name: api-gateway
cloud:
config:
discovery:
enabled: true
service-id: CONFIG
profile: dev
zuul:
routes:
myProduct:
path: /myProduct/**
serviceId: product
测试
7、排除某些路由
zuul:
routes:
#/myProduct/product/list -> /product/product/list
#myProduct:
# path: /myProduct/**
# serviceId: product
#简洁写法
product: /myProduct/**
ignored-patterns:
- /product/product/listForOrder
- /myProduct/product/listForOrder
效果如下图
两个配置改成一个通配符
9.设置Cookie可传递
三、典型应用场景
1、前置(Pre)
限流 鉴权 参数校验调整
2、后置(Post)
统计 日志