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)
统计 日志