Spring Cloud Zuul过滤器介绍及使用(传递数据、拦截请求和异常处理)

  • 内容
  • 评论
  • 相关

在教程《Zuul网关的介绍及使用》中一开始就介绍过,Zuul 可以实现很多高级的功能,比如限流、认证等。想要实现这些功能,必须要基于 Zuul 给我们提供的核心组件“过滤器”。下面我们一起来了解一下 Zuul 的过滤器。

过滤器类型

Zuul 中的过滤器跟我们之前使用的 javax.servlet.Filter 不一样,javax.servlet.Filter 只有一种类型,可以通过配置 urlPatterns 来拦截对应的请求。

而 Zuul 中的过滤器总共有 4 种类型,且每种类型都有对应的使用场景。

1)pre

可以在请求被路由之前调用。适用于身份认证的场景,认证通过后再继续执行下面的流程。

2)route

在路由请求时被调用。适用于灰度发布场景,在将要路由的时候可以做一些自定义的逻辑。

3)post

在 route 和 error 过滤器之后被调用。这种过滤器将请求路由到达具体的服务之后执行。适用于需要添加响应头,记录响应日志等应用场景。

4)error

处理请求时发生错误时被调用。在执行过程中发送错误时会进入 error 过滤器,可以用来统一记录错误信息。

请求生命周期

可以通过图 1 看出整个过滤器的执行生命周期,此图来自 Zuul GitHub wiki 主页。

过滤器生命周期
图 1  过滤器生命周期

本文标题:Spring Cloud Zuul过滤器介绍及使用(传递数据、拦截请求和异常处理)

本文地址:https://www.hosteonscn.com/6686.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注