细到不能再细的 Spring Cloud Gateway 原理分析
Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring WebFlux 和 Project Reactor 等技术构建的 API 网关,提供的功能包括:路由转发、过滤链等。
以下是 Spring Cloud Gateway 的工作原理:
- 路由(Routing):Spring Cloud Gateway 的基础工作模式就是将请求的路径匹配到某个路由,然后转发到指定的服务。
- 过滤器(Filtering):Spring Cloud Gateway 的另一个核心就是内置的过滤器链,这些过滤器会在请求被转发之前和转发之后进行一些处理。
以下是 Spring Cloud Gateway 的工作流程:
- 客户端向 Spring Cloud Gateway 发送请求。
- Gateway Hander Mapping 确定请求映射到的路由。
- Handler Adapter 将请求转发到对应的服务。
- 服务处理完请求后返回结果。
- 返回的结果可以进行全局的预处理,然后返回给客户端。
以下是 Spring Cloud Gateway 的核心概念:
- Route:路由是网关的基础组成部分,它由 ID,目标 URI,以及一系列的断言和过滤器组成,只有断言为真的请求才会被转发到指定的路由。
- Predicate:断言,这是一个 Java 8 的 Predicate,输入类型是一个 ServerWebExchange。我们可以使用它来匹配来自 HTTP 请求的任何内容,例如 headers 或参数。
- Filter:过滤器,在请求被转发之前和转发之后可以进行一些处理。
以下是 Spring Cloud Gateway 的核心组件:
- DispatcherHandler:负责将请求映射到正确的 Handler 来处理。
- HttpHandler Mapping:Spring Cloud Gateway 的请求映射。
- Gateway Web Handler:处理请求转发和过滤链。
- Filter Chain:过滤链,包含了所有的 pre 过滤器和 post 过滤器。
以下是 Spring Cloud Gateway 的核心流程图:
以上是对 Spring Cloud Gateway 的一个概括性的介绍,通过这个介绍,我们可以了解到 Spring Cloud Gateway 的工作原理和核心概念,以及它的工作流程和组件。
评论已关闭