Spring Cloud Gateway详解(图文全面总结)

微服务是大型架构的核心,下面我重点详解Spring Cloud Gateway@mikechen

Spring Cloud Gateway 

Spring Cloud Gateway(简称 SCG),是基于 Spring 生态的云原生网关解决方案,旨在替代传统的 Zuul。

简单来说,Gateway 是微服务体系中的统一入口,负责:路由转发+反应式过滤器链。

Spring Cloud Gateway详解(图文全面总结)

比如:

路由转发(Routing);

请求过滤(Filtering);

鉴权与限流;

熔断与降级;

监控与日志追踪。

 

为什么需要网关

在微服务架构中,服务数量众多,如果客户端直接访问每个服务,将面临:

服务地址暴露、安全风险;

每个服务都要独立实现认证、限流、日志;

客户端调用复杂,版本难以管理。

引入 Gateway 后,可以集中处理上述通用功能,使微服务更轻量、更专注于业务逻辑。

 

 

Spring Cloud Gateway核心

Spring Cloud Gateway 的核心由 三大组件 构成:RoutePredicateFilter

Spring Cloud Gateway详解(图文全面总结)

路由(Route)

路由,由一组匹配条件(Predicate)、和一组过滤器(Filter)以及目标 URI 组成。

每个请求根据 Predicate 匹配到相应 Route,并被 Route 上的 Filter 链处理后转发到目标服务。

 

过滤器(Filter)

过滤器是 Gateway 的灵魂,用于拦截与处理请求和响应。

常见过滤器:

AddRequestHeader:添加请求头;

StripPrefix:移除路径前缀;

RequestRateLimiter:限流;

CircuitBreaker:熔断;

RewritePath:路径重写。

 

断言工厂(PredicateFactory)

用于构造各种断言(如路径、方法、头、参数等)的工厂,决定请求是否匹配某条路由。

 

 

Spring Cloud Gateway原理

可以将上述原理简化为以下一个清晰的流程:

Spring Cloud Gateway详解(图文全面总结)

  1. 客户端请求 发送到 Spring Cloud Gateway。
  2. 网关路由查找: 请求被 RouteLocator 接收,开始根据 断言 (Predicate) 匹配规则查找合适的 路由 (Route)。
  3. 路由选中: 找到第一个匹配所有断言的路由。
  4. 构建和执行 Pre 过滤器链: 收集该路由的所有 局部过滤器 和所有 全局过滤器,按照优先级(order)从低到高依次执行 Pre 逻辑。
  5. 目标服务路由: 过滤器链执行完毕后,请求被 负载均衡 到目标微服务。
  6. 微服务处理 并返回 响应。
  7. 执行 Post 过滤器链: 响应到达网关,过滤器链开始执行 Post 逻辑,顺序与 Pre 逻辑 相反。
  8. 网关响应客户端: 最终处理后的响应返回给客户端。

 

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧