Spring Cloud Gateway 源码拆解:一个请求从进入到转发经历了什么
引言 "网关登录接口一直 401,JWT 密钥、Redis、白名单全查了一遍,最后发现是过滤器顺序问题——自定义 AuthFilter 和 StripPrefix 的 order 都是 0,谁先执行看运气。" 这个真实排查故事的关键线索是网关启动日志里一行不起眼的 Sorted gatewayFilterFactories:两个过滤器 order 相同,路径有时先被 StripPrefix 改写成 /auth/login,白名单配的 /api/auth/login 就永远匹配不上。 Spring Cloud Gateway(SCG)是 Spring Cloud 全家桶里少数基于 WebFlux/Netty 的全异步组件,很多从 Spring MVC 转过来的开发者读它的源码会不适应:没有 Servlet、没有线程池阻塞、到处是 Mono/Flux。这篇文章按一个请求的真实执行路径,从 DispatcherHandler 一路跟到 NettyRoutingFilter,讲透三件事:路由怎么匹配(优先级)、过滤器怎么排序(执行顺序)、响应式链路怎么串起来(Mono 套 Mono)。读完你会....