微服务是大型架构的核心,下面我重点详解Spring Cloud Gateway@mikechen
Spring Cloud Gateway
Spring Cloud Gateway(简称 SCG),是基于 Spring 生态的云原生网关解决方案,旨在替代传统的 Zuul。
简单来说,Gateway 是微服务体系中的统一入口,负责:路由转发+反应式过滤器链。

比如:
路由转发(Routing);
请求过滤(Filtering);
鉴权与限流;
熔断与降级;
监控与日志追踪。
为什么需要网关
在微服务架构中,服务数量众多,如果客户端直接访问每个服务,将面临:
服务地址暴露、安全风险;
每个服务都要独立实现认证、限流、日志;
客户端调用复杂,版本难以管理。
引入 Gateway 后,可以集中处理上述通用功能,使微服务更轻量、更专注于业务逻辑。
Spring Cloud Gateway核心
Spring Cloud Gateway 的核心由 三大组件 构成:Route、Predicate、Filter。

路由(Route)
路由,由一组匹配条件(Predicate)、和一组过滤器(Filter)以及目标 URI 组成。
每个请求根据 Predicate 匹配到相应 Route,并被 Route 上的 Filter 链处理后转发到目标服务。
过滤器(Filter)
过滤器是 Gateway 的灵魂,用于拦截与处理请求和响应。
常见过滤器:
AddRequestHeader:添加请求头;
StripPrefix:移除路径前缀;
RequestRateLimiter:限流;
CircuitBreaker:熔断;
RewritePath:路径重写。
断言工厂(PredicateFactory)
用于构造各种断言(如路径、方法、头、参数等)的工厂,决定请求是否匹配某条路由。
Spring Cloud Gateway原理
可以将上述原理简化为以下一个清晰的流程:

- 客户端请求 发送到 Spring Cloud Gateway。
- 网关路由查找: 请求被
RouteLocator接收,开始根据 断言 (Predicate) 匹配规则查找合适的 路由 (Route)。 - 路由选中: 找到第一个匹配所有断言的路由。
- 构建和执行 Pre 过滤器链: 收集该路由的所有 局部过滤器 和所有 全局过滤器,按照优先级(
order)从低到高依次执行 Pre 逻辑。 - 目标服务路由: 过滤器链执行完毕后,请求被 负载均衡 到目标微服务。
- 微服务处理 并返回 响应。
- 执行 Post 过滤器链: 响应到达网关,过滤器链开始执行 Post 逻辑,顺序与 Pre 逻辑 相反。
- 网关响应客户端: 最终处理后的响应返回给客户端。
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注作者「mikechen」公众号,获取更多技术干货!
后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》,后台回复【面试】即可获取《史上最全阿里Java面试题总结》