没有合适的资源?快使用搜索试试~ 我知道了~
首页Spring Cloud Gateway 2.1 使用手册中文版
版本:2.1.0.BUILD-SNAPSHOT。 这个项目提供了一个构建在Spring生态系统之上的API网关,包括:Spring 5,Spring Boot 2和Project Reactor。 Spring Cloud Gateway旨在提供一种简单而有效的API路由方式,并为其提供横切关注点,例如:安全,监控/指标和弹性。 特征: (1)构建于Spring Framework 5,Project Reactor 和 Spring Boot 2.0 (2)能够匹配任何请求属性的路由 (3)谓词和过滤器对于路由是特定的 (4)Hystrix断路器集成 (5)Spring Cloud DiscoveryClient集成 (6)易于编写谓词和过滤器 (7)请求速率限制 (8)路径重写
资源详情
资源评论
资源推荐

1 / 36
Spring Cloud Gateway
版本:2.1.0.BUILD-SNAPSHOT。
这个项目提供了一个构建在 Spring 生态系统之上的 API 网关,包括:Spring 5,Spring
Boot 2 和 Project Reactor。 Spring Cloud Gateway 旨在提供一种简单而有效的 API 路
由方式,并为其提供横切关注点,例如:安全,监控/指标和弹性。
特征
构建于 Spring Framework 5,Project Reactor 和 Spring Boot 2.0
能够匹配任何请求属性的路由
谓词和过滤器对于路由是特定的
Hystrix 断路器集成
Spring Cloud DiscoveryClient 集成
易于编写谓词和过滤器
请求速率限制
路径重写
1. 如何引入 Spring Cloud Gateway
要在项目中引入 Spring Cloud Gateway,请使用 org.springframework.cloud 启动
依赖包,其构件 id 是 spring-cloud-starter-gateway。请参阅 Spring Cloud Project 页面,
以获取有关使用当前 Spring Cloud Release Train 设置构建系统的详细信息。如果引入启
动依赖包,但由于某种原因,您不希望启用网关,请设置 spring.cloud.gateway.enabled =
false。

2 / 36
注意:
Spring Cloud Gateway 需要 Spring Boot 和 Spring Webflux 提供 Netty 运行时。
它不能在传统的 Servlet 容器中工作或构建为 WAR。
2. 词汇表
路由:路由是网关的基本构建模块。它由一个 ID,一个目标 URI,一组谓词和一个过滤器
的集合定义。如果聚合谓词为真,则路由匹配。
谓词:这是一个 Java 8 函数谓词。输入类型是一个 Spring 框架的 ServerWebExchange。
这允许开发人员匹配来自 HTTP 请求的任何内容,例如头部或参数。
过滤器:这些是 Spring 框架网关过滤器在特定工厂中构建的实例。这里,可以在发送下游
请求之前或之后修改请求和响应。

3 / 36
3. 它是如何工作的
客户端向 Spring Cloud Gateway 发出请求。如果网关处理程序映射确定请求与路由
匹配,则将其发送到网关 Web 处理程序。这个运行的处理程序通过特定于请求的过滤器链
发送请求。过滤器被虚线划分的原因是过滤器可以在发送代理请求之前或之后执行逻辑。执
行所有“pre”过滤器逻辑,然后进行代理请求。在发出代理请求之后,执行“post”过滤
器逻辑。
注意:
在路由中定义的没有端口的 URI 将分别为 HTTP 和 HTTPS URI 获取默认端口设置

4 / 36
为 80 和 443。
4. 路由谓词工厂链
Spring Cloud Gateway 将路由作为 Spring WebFlux HandlerMapping 基础设施的
一部分进行匹配。Spring Cloud Gateway 包含许多内置的路由谓词工厂。所有这些谓词都
匹配 HTTP 请求的不同属性。多个谓词工厂可以通过逻辑与进行组合。
4.1. After 路由谓词工厂
After 路由谓词工厂采用一个 datetime 类型的参数。此谓词匹配当前日期时间之后发
生的请求。
application.yml
spring:
cloud:
gateway:
routes:
- id: after_route
uri: http://example.org
predicates:
- After=2017-01-20T17:42:47.789-07:00[America/Denver]
此路由与 2017 年 1 月 20 日 17:42 Mountain Time(Denver)之后的所有请求相匹配。
4.2. Before 路由谓词工厂
Before 路由谓词工厂采用一个 datetime 类型的参数。此谓词匹配当前日期时间之前
发生的请求。
application.yml
spring:
cloud:
gateway:

5 / 36
routes:
- id: before_route
uri: http://example.org
predicates:
- Before=2017-01-20T17:42:47.789-07:00[America/Denver]
此路由与 2017 年 1 月 20 日 17:42 Mountain Time(Denver)之前的任何请求相匹配。
4.3. Between 路由谓词工厂
Between 路由谓词工厂采用两个参数,datetime1 和 datetime2。此谓词匹配
datetime1 之后和 datetime2 之前发生的请求。datetime2 参数必须在 datetime1 之后。
application.yml
spring:
cloud:
gateway:
routes:
- id: between_route
uri: http://example.org
predicates:
- Between=2017-01-20T17:42:47.789-07:00[America/Denver],
2017-01-21T17:42:47.789-07:00[America/Denver]
此路由与 2017 年 1 月 20 日 17:42 Mountain Time (Denver)之后和 2017 年 1 月 21 日
17:42 Mountain Time (Denver)之前的所有请求相匹配。这对维护窗口很有用。
4.4. Cookie 路由谓词工厂
Cookie 路由谓词工厂采用两个参数,cookie 名称和正则表达式。此谓词匹配具有给定
名称的 cookie,值与正则表达式匹配。
application.yml
spring:
cloud:
gateway:
routes:
- id: cookie_route
剩余35页未读,继续阅读


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论1