曾经的项目-zuul过滤器

我们基层党建平台使用zuul做网关,版本1.3.1,zuul这边设置了多个过滤器,做个回顾。

首先简单说下zuul的工作过程

zuul过滤器在请求到zuul和zuul转发到对应服务前做过滤,看这个请求是否符合要求,如果没有zuul过滤器,请求将直接被转发,需要启用zuul proxy

转发逻辑可以看下具体的实现,这里就不说了。zuul过滤器可以帮助我们实现基础的请求白名单,黑名单,流量染色

过滤器实现了ZuulFilter,ZuulFilter在netflix core包下面,属于spring cloud组件

实现ZuulFilter要实现4个方法

filterType
filterOrder
shouldFilter
run

回顾下主要用的几个过滤器

ColoredFilter 根据流量的染色转发到对应服务
OauthFilter 负责根据token获取用户信息,判断用户是否登录,如果没有登录返回401 对/api/**开头的请求有效
OpenApiFilter 开放api,saas开头的api请求,仅开放此filter设置对外暴露的接口允许zuul转发
OperateFilter 运营相关api

不同的filter根据filter order排序,数字越小,越先执行。

zuul filter执行顺序说明:

1  按照filterType决定顺序

Pre 优先 Post执行,此时filterOrder没有作用。

2 filterType相同

filterOrder有作用,数字越小,越先执行。(负数也是这个规则,0和-1的话,-1先执行)

3 相同filterType,相同filterOrder,都执行,执行顺序不清楚。

prefilter先执行了,post后执行了。

有机会都可以试试看。

思考:为什么用zuul做网关

我个人觉得可能是考虑到zuul网关扩展性好一点吧,可以扩展至其他微服务框架中,另外党建平台后台这边限流是自己的实现,没有依赖网关。gateway的话对比zuul多依赖了spring-webflux,仅适合于Spring Cloud套件,不过zuul是netflix的,可能对spring cloud的嵌合更好些,我们其它项目用了gateway,而且据说gateway是基于响应式的、非阻塞式的 API,zuul是基于阻塞式的 API,不支持长连接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值