细到不能再细的 Spring Cloud Gateway 原理分析
    		       		warning:
    		            这篇文章距离上次修改已过426天,其中的内容可能已经有所变动。
    		        
        		                
                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 的一个概括性的介绍,通过这个介绍,我们可以了解到 Spring Cloud Gateway 的工作原理和核心概念,以及它的工作流程和组件。
评论已关闭