1. Spring Cloud Gateway过滤器工厂入门指南
第一次接触Spring Cloud Gateway的内置过滤器时,我就像拿到了一把瑞士军刀却只会用开瓶器功能。经过多个电商项目的实战,发现这些过滤器组合起来能解决微服务路由中的各种奇葩需求。举个例子,去年我们有个电商项目需要把旧版API无缝迁移到新版,就是靠Path和Parameter过滤器零停机完成的。
GatewayFilter工厂分为几种核心类型:
- 路径操作类:RewritePath、SetPath、StripPrefix
- 参数处理类:AddRequestParameter、RemoveRequestParameter
- 状态控制类:SetStatus、RedirectTo
- 请求增强类:AddRequestHeader、AddResponseHeader
yaml复制# 典型配置示例
filters:
- RewritePath=/old/(?<segment>.*), /new/${segment}
- AddRequestParameter=debug, true
- SetStatus=401
实际项目中容易踩的坑是过滤器执行顺序。比如要先做路径重写再加参数,顺序反了就会导致参数丢失。建议在测试环境用Actuator的/gateway/routes端点验证过滤器链效果。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 路径过滤器的花式玩法
2.1 动态路由改造实战
在电商后台系统中,我们经常需要处理这类场景:
- 将/v1/products/123 重写为 /api/v1/products?id=123
- 给所有/admin路径添加IP白名单校验
用RewritePath配合正则表达式就能优雅解决:
yaml复制filters:
- RewritePath=/v1/products/(?<id>\d+), /api/v1/products?id=${id}
最近遇到个有意思的需求:要把商品详情的URL从数字ID改成SEO友好的字符串。这时候SetPath就派上用场了:
java复制// 配合自定义的GlobalFilter
exchange.getAttributes().put("seoNam
