[TOC]
# Zuul网关架构
![](https://box.kancloud.cn/18adb3e66cedfa991acbead83c8ae970_1150x832.png)
请求过来,先到Servlet,然后到拦截器Runner(管理过滤器)这边,然后会走前置过滤器,然后走路由过滤器,最后走后置过滤器
前置过滤器,做日志记录(调用了那个功能)
路由过滤器,找到目标服务并调用
后置过滤器:事后处理,日志处理,统计,回到客户端
过滤器很核心,比如我们业务经常变,可以灵活配置过滤器,这些过滤器可以灵活插拔
<br>
开发完过滤器,可以把过滤器上传到过滤器存储数据库中,然后又个poller,他会发现有没有新的,有新的,他会把新的上传到过滤器目录中
然后上层过滤器文件管理器,他会定期扫这个过滤器目录,有新的会上传到Filter loader中,然后Filter loader会把这个过滤器加载到Filter Runner,Filter Runner把这个过滤器放到指定位置
<br>
如果不同过滤器要分享些信息,可以用Request Context,利用这个可以共享些信息
# 详解
![](https://box.kancloud.cn/0fc714c1ce4966d8f095075b9162d860_1498x905.png)
流程抽出来
先走前置过滤器,可以加自己定义的filter
routing filters调用后台微服务
后置过滤器,如果整个流程有错误,会抛给error filters,这个error filters会做相应的错误处理
# 思考
设计个反爬虫的过滤器,那么这个过滤器是放在那个呢?