从0到1搭建 API 网关:限流+鉴权+路由+日志,手写一个迷你 Gateway
引言 团队新来了个挺优秀的同学,简历上写着"深度使用 Spring Cloud Gateway"。线上网关出了个诡异问题:某个接口偶发 502,我问他"转发这块的连接池配置在哪",他愣了一下:"网关不就是个配置文件吗?" 不是嘲讽谁。用框架和懂原理,从来是两回事。 Spring Cloud Gateway 把 3000 多个类打包成一个 starter,也把"网关到底怎么工作"这件事打包黑盒里了: 为什么全局过滤器(GlobalFilter)的 order 会决定整个链路行为? 为什么网关的 EventLoop 线程上绝不能写阻塞代码? 令牌桶限流怎么做到并发下"不超卖"? 负载均衡的"平滑加权"和普通加权差在哪? 一次转发请求头要改写哪些字段,漏改一个就是 502? 这些问题,读框架源码要翻几千行;自己写一个 800 行的迷你网关,全部答案扑面而来。 所以这篇文章我们做一件事:不依赖 Spring Cloud Gateway,甚至不依赖 Spring,用 Netty + 800 行核心代码,手写一个能跑的网关,包含完整四大能力:路由转发(YAML 路由表)、令牌桶限流、JWT 鉴....