Version: Next
Spring Cloud Gateway 工作流程
三大核心概念
Route 路由
- 路由是构建网关的基本模块,它由
ID
、目标URI
,一系列的断言和过滤器组成 - 如果断言为
true
,则匹配该路由
Predicate 断言
- 参考 Java8 的 java.util.function.Predicate
- 开发人员可以匹配 HTTP 请求中的所有内容(例如请求头或请求参数),如果请求和断言匹配则进行路由
Filter 过滤
- Spring 框架中的 GatewayFilter 实例,使用过滤器,可以再请求被路由之前或者之后对请求进行修改
工作流程
Spring Cloud Gateway 工作流程
- Web 请求到达,通过一些匹配条件,定位到真正的服务节点,并在这个转发过程的前后,进行一些精细化控制
Predicate 断言
就是匹配条件,Gateway Handler Mapping
Filter 过滤器
可以理解为一个无所不能的拦截器,做前后精细化处理Gateway Web Handler
- 再加上
URI
,就可以实现一个具体的路由
- 客户端向 Spring Cloud Gateway 发送请求
- 在
Gateway Handler Mapping
中找到与请求匹配的路由,发送到Gateway Web Handler
Handler
通过制定的Filter
过滤器链将请求发送到实际的服务执行业务逻辑,然后返回。过滤器可能会在发送代理请求之前pre
或者之后post
执行业务逻辑
pre
前置过滤器:可以做参数校验
、权限校验
、流量监控
、日志输出
、协议转换
post
后置过滤器:可以做响应体修改
、日志输出
、流量监控