首页 > 其他 > 详细

Gateway 过滤器总结

时间:2021-05-18 15:49:05      阅读:9      评论:0      收藏:0      [点我收藏+]

一、filter的作用和生命周期

  由filter工作流程点,可以知道filter有着非常重要的作用,在“pre”类型的过滤器可以做参数校验、权限校验、流量监控、日志输出、协议转换等,在“post”类型的过滤器中可以做响应内容、响应头的修改,日志的输出,流量监控等。首先需要弄清一点为什么需要网关这一层,这就不得不说下filter的作用了。

1.1、作用

  在微服务的上一层加一个全局的权限控制、限流、日志输出的Api Gatewat服务,然后再将请求转发到具体的业务服务层。这个Api Gateway服务就是起到一个服务边界的作用,外接的请求访问系统,必须先通过网关层。

1.2、生命周期

  Spring Cloud Gateway同zuul类似,有“pre”和“post”两种方式的filter。
技术分享图片

 

客户端向Spring Cloud GateWay发出请求,然后在GateWay Handler Mapping中找到与请求相匹配的路由,将其发送到GateWay Web Handler;Handler再通过指定的过滤器链来将请求发送到我们实际的服务执行业务逻辑,然后返回。过滤器之间用虚线分开是因为过滤器可能会在发送代理请求之前(pre)或者之后(post)执行业务逻辑。

Filter在“pre”类型过滤器中可以做参数校验、权限校验、流量监控、日志输出、协议转换等,在“post”类型的过滤器中可以做响应内容、响应头的修改、日志的输出、流量监控等。

从过滤器生命周期(影响时机点)的?度来说,主要有两个pre和post:

  • pre:这种过滤器在请求被路由之前调用。我们可以利用这类过滤器实现身份验证、在集群中选择 请求的微服务、记录调试信息等。
  • post:这种过滤器在路由到微服务以后执行。这类过滤器可用来为响应添加标准的HTTP Header、收集统计信息和指标、将响应从微服务发送给客户端。

与zuul不同的是,filter除了分为“pre”和“post”两种方式的filter外,在Spring Cloud Gateway中,

从过滤器作用范围的角度来说,可分为另外两种,一种是针对于单个路由的gateway filter,它在配置文件中的写法同predict类似;另外一种是针对于所有路由的global gateway filer。现在从作用范围划分的维度来讲解这两种filter。
技术分享图片

说明:

  • GatewayFilter:网关过滤器,需要通过spring.cloud.routes.filters配置在具体的路由下,只作用在当前特定路由上,也可以通过配置spring.cloud.default-filters让它作用于全局路由上
  • GlobalFilter:全局过滤器,不需要再配置文件中配置,作用在所有的路由上,最终通过GatewayFilterAdapter包装成GatewayFilterChain能够识别的过滤器。

网关过滤器
网关过滤器用于拦截并链式处理web请求,可以实现横切与应用无关的需求,比如:安全、监控/埋点、限流访问超时设置、对请求和响应做出修改。Spring Cloud Gateway包含了许多内置的网关过滤器工厂,大概有30多个,具体用途大致可以分为以下几类

Header过滤器
Parameter请求参数过滤器
Path路径过滤器
Body请求(响应)体过滤器
Status状态过滤器
Session会话过滤器
Redirect重定向过滤器
Retry重试过滤器
RateLimiter限流过滤器
Hystrix熔断过滤器。

原文链接:https://blog.csdn.net/weixin_39693437/article/details/113318568

原文链接:https://blog.csdn.net/weixin_38361347/article/details/114108368

Gateway 过滤器总结

原文:https://www.cnblogs.com/duanxz/p/14780675.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!