知识卡片
网关的路由谓词过滤器三要素
内容
网关的核心抽象拆成三块:路由本身(一个唯一 ID + 转发目标地址 + 一组谓词 + 一组过滤器);谓词负责判断一个请求该不该走这条路由,能匹配路径、host、header、query 参数等 HTTP 请求的任意维度;过滤器负责在转发前后对请求/响应做加工,分成两条独立的过滤器链——请求转发给下游服务之前跑一条(改请求头、限流、熔断、触发认证),下游返回响应之后、返回给客户端之前再跑另一条(加安全头、过滤敏感字段)。这三者组合起来,网关不只是一个简单的反向代理,而是能在”要不要转发”和”转发前后要做什么”这两个维度上做精细控制的可编程入口。发散:把”匹配规则”(谓词)和”处理逻辑”(过滤器)分开设计,是很多中间件的通用套路——先用谓词决定这个请求属于哪一类,再用一串可插拔的过滤器去处理这一类请求,新增一种处理逻辑只需要新增一个过滤器,不需要碰匹配规则本身。
参考来源
《Cloud Native Spring in Action》第9章《API gateway and circuit breakers》