前言
Filter 我们用的比较多,大部分是Servlet中的Filter,通常我们用来做一些拦截,权限验证之类的工作。
今天介绍的Filter是Zuul中提供的,跟我们之前使用的Servlet Filter不太一样。
Zuul中提供Filter的作用有哪些,我觉得分为如下几点:
- 网关是暴露在外面的,必须要进行权限控制
- 可以针对服务做控制,在路由的时候处理,比如服务降级
- 防止爬虫,利用Filter对请求进行过滤
- 流量控制,只允许最高的并发量,保护后端的服务
- 灰度发布,可以针对不用的用户进行路由来实现灰度
Filter种类
- pre:可以在请求被路由之前调用
- route:在路由请求时候被调用
- post:在route和error过滤器之后被调用
- error:处理请求时发生错误时被调用
关于zuul的Filter的生命周期,见下图
使用
下面我们以一个IP黑名单过滤器来进行讲解
```
**
- IP黑名单限