Spring Cloud Gateway 内置 Filter 使用指南
在现代微服务架构中,API 网关作为系统的统一入口,承担着路由、负载均衡、安全控制等关键职责。Spring Cloud Gateway 基于 Netty 异步非阻塞模型,性能表现优异。其中,内置 Filter 允许我们在请求转发前后执行特定逻辑,是构建灵活网关的核心手段。
本文将重点讲解 AddRequestHeader 和 RewritePath 这两个常用 Filter,结合 YAML 和 Java 配置示例,演示如何在实际项目中应用它们。
一、核心概念简述
1.1 什么是 Spring Cloud Gateway?
它是 Spring 官方推出的下一代 API 网关,基于 Spring Framework 5、Project Reactor 和 Spring Boot 2 构建。相比传统的 Zuul,Gateway 提供了更强大的路由匹配能力和更丰富的过滤器机制。
1.2 核心组件
- Route (路由): 包含 ID、目标 URI、断言(Predicate)和过滤器(Filter)。
- Predicate (断言): 用于判断请求是否符合路由规则,如路径、方法或头信息。
- Filter (过滤器): 在请求路由前或后执行操作,可修改请求/响应或执行鉴权、限流等。
二、内置 Filter 详解
2.1 AddRequestHeader Filter
该 Filter 用于在请求发送到下游服务前,向请求头添加自定义键值对。常用于传递追踪 ID、认证令牌等信息。
配置方式
支持 YAML 和 Java 两种配置模式。
YAML 配置示例
spring:
cloud:
gateway:
routes:
- id: add-header-route
uri: lb://service-a
predicates:
- Path=/api/service-a/**
filters:
- name: AddRequestHeader
args:
name: X-Forwarded-For
value: 192.168.1.1
- name: AddRequestHeader


