Spring Cloud Gateway 2.1 使用手册中文版.pdf
文本预览下载声明
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。
1 / 36
注意: Spring Cloud Gateway 需要 Spring Boot 和 Spring Webflux 提供 Netty 运行时。
它不能在传统的 Servlet 容器中工作或构建为 WAR。
2. 词汇表
路由 :路由是网关的基本构建模块。它由一个ID ,一个目标URI ,一组谓词和一个过滤器
的集合定义。如果聚合谓词为真,则路由匹配。
谓词 :这是一个Java 8 函数谓词。输入类型是一个 Spring 框架的 ServerWebExchange。
这允许开发人员匹配来自 HTTP 请求的任何内容,例如头部或参数。
过滤器 :这些是Spring 框架网关过滤器在特定工厂中构建的实例。这里,可以在发送下游
请求之前或之后修改请求和响应。
2 / 36
3. 它是如何工作的
客户端向 Spring Cloud Gateway 发出请求。如果网关处理程序映射确定请求与路由
匹配,则将其发送到网关Web 处理程序。这个运行的处理程序通过特定于请求的过滤器链
发送请求。过滤器被虚线划分的原因是过滤器可以在发送代理请求之前或之后执行逻辑。执
行所有“pre”过滤器逻辑,然后进行代理请求。在发出代理请求之后,执行“post”过滤
器逻辑。
注意: 在路由中定义的没有端口的 URI 将分别为 HTTP 和 HTTPS URI 获取默认端口设置
3 / 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:
predicates:
- After=2017-01-20T17:42:47.789-07:00[America/Denver]
此路由与 2017 年 1 月 20 日17:42 Mountain Time (Denver )之后的所有请求相匹配。
4.2.
显示全部