主题
概念卡片:Gateway 网关
一句话机制:网关是微服务的统一入口——所有外部请求先到网关,网关按路由规则转发到对应服务,并在此统一做鉴权、限流、日志、跨域等横切逻辑;Spring Cloud Gateway 基于响应式非阻塞的 Netty 实现,性能优于阻塞式的 Zuul。
核心职责
| 职责 | 说明 |
|---|---|
| 路由转发 | 按 path/header 把请求转发到目标服务 |
| 统一鉴权 | 登录态校验、权限过滤(不必每个服务都做) |
| 限流/熔断 | 配合 Sentinel/Redis 做流量控制 |
| 日志/监控 | 统一记录请求链路 |
Gateway vs Zuul(完整对比)
| 维度 | Spring Cloud Gateway | Zuul |
|---|---|---|
| 开源组织 | Spring 官方子项目 | Netflix |
| 底层实现 | Spring 5+ 响应式、非阻塞 | Servlet 2.5 阻塞式 |
| 内嵌容器 | Netty | Tomcat |
| 长连接 | 支持 WebSocket | 不支持 |
| 性能 | 高并发/慢响应下更优 | 高并发下较弱 |
不变量(必须成立的约束)
- 网关是外部访问的唯一入口,内部服务不直接暴露给外部。
- Gateway 是**响应式(WebFlux)**技术栈,路由配置用
Route+Predicate(断言)+Filter(过滤器)。 - 横切逻辑(鉴权/限流/日志)应收敛到网关,避免每个服务重复实现。
踩坑案例
- 现象:Gateway 转发后服务收到的是 404 或路径错乱。 原因:路由
StripPrefix/路径重写配置错。解决:核对Predicate匹配的 path 和Filter的路径处理。
常见误解
- 以为网关只是「反向代理」→ 它除了转发还承担鉴权、限流、路由断言、过滤器链等横切职责。
- 以为 Zuul 和 Gateway 性能差不多 → Gateway 响应式非阻塞,高并发慢后端场景明显优于阻塞式 Zuul。
关联
- 总览:微服务技术栈总览
- 流量治理:概念卡片:Sentinel熔断限流降级
- 源:
B40-资源/语雀-Leo的知识库/微服务/01_SpringCloudAlibaba/08_Gateway(2 篇)