文章目录
什么是过滤器?
再前面的几个章节中我们已经实现了将我们的网关服务注册到注册中心,并且成功的从配置中心拉取了配置。
那么接下来我们就要开始实现一个网关服务的核心了,也就是过滤器链。
过滤器链是由多个过滤器组成的,一个过滤器执行完毕其过滤流程之后,会转发该请求到下一个过滤器继续执行。从而完成对请求和响应的处理。
并且如果了解SpringCloudGateway的,就会知道,过滤器分为全局过滤器和局部过滤器。
前者对所有请求进行处理,而局部过滤器SpringCloud已经默认帮助我们实现了,当然我们也可以自己继承并实现。
过滤器按照链条的方式对请求进行处理,如果了解网关项目的人应该是知道的,当所有过滤器请求处理完毕之后,会有一个路由过滤器将请求发送到对应的后台服务进行处理,也就是将请求进行转发,当后台服务处理完毕之后,就会再次返回请求。
如果再过滤器链处理请求的过程中出现了异常,我们也可以使用过滤器链的方式来进行捕获。
而如果请求正常转发并且处理完毕了,我们就可以使用 context.writeAndFlush方法将数据写回