服务网关Zuul

时间:2021-07-25 07:02:39

Zuul介绍

路由+过滤器 = Zuul

核心是一系列的过滤器

Zuul的四种过滤器API

前置(PRE)

后置(POST)

路由(Route)

错误(Error)

Zuul组织架构图

服务网关Zuul

Zuul Fillter生命周期

服务网关Zuul

二、Zuul的使用

1 创建工程

服务网关Zuul

选择Config Client

服务网关Zuul

选择Eureka Discovery

服务网关Zuul

选择Zuul

服务网关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

服务网关Zuul

已经多了一个API-GATEWAY

4、增加EnableZuulProxy注解

服务网关Zuul

5、增加访问API-Gateway的时候,路由到Product服务下的list商品列表接口,如下图

服务网关Zuul

访问API-Gateway。 

服务网关Zuul

第一个product代表eureka下的Application的名称

服务网关Zuul

调用Post接口,如下图

服务网关Zuul

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

  测试

服务网关Zuul

7、排除某些路由

zuul:
routes:
#/myProduct/product/list -> /product/product/list
#myProduct:
# path: /myProduct/**
# serviceId: product
#简洁写法
product: /myProduct/**
ignored-patterns:
- /product/product/listForOrder
- /myProduct/product/listForOrder

  效果如下图

服务网关Zuul

两个配置改成一个通配符

服务网关Zuul

9.设置Cookie可传递

服务网关Zuul

三、典型应用场景

1、前置(Pre)

限流  鉴权 参数校验调整

2、后置(Post)

统计  日志