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,就可以实现一个具体的路由

  1. 客户端向 Spring Cloud Gateway 发送请求
  2. Gateway Handler Mapping 中找到与请求匹配的路由,发送到 Gateway Web Handler
  3. Handler 通过制定的 Filter 过滤器链将请求发送到实际的服务执行业务逻辑,然后返回。过滤器可能会在发送代理请求之前 pre 或者之后 post 执行业务逻辑
    • pre 前置过滤器:可以做 参数校验权限校验流量监控日志输出协议转换
    • post 后置过滤器:可以做 响应体修改日志输出流量监控