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 MappingFilter 过滤器可以理解为一个无所不能的拦截器,做前后精细化处理Gateway Web Handler- 再加上
URI,就可以实现一个具体的路由
- 客户端向 Spring Cloud Gateway 发送请求
- 在
Gateway Handler Mapping中找到与请求匹配的路由,发送到Gateway Web HandlerHandler通过制定的Filter过滤器链将请求发送到实际的服务执行业务逻辑,然后返回。过滤器可能会在发送代理请求之前pre或者之后post执行业务逻辑
pre前置过滤器:可以做参数校验、权限校验、流量监控、日志输出、协议转换post后置过滤器:可以做响应体修改、日志输出、流量监控