本文来详细说下gateway中的过滤器相关的知识与内容。

文章目录

  • 概述
  • 过滤器类型
    • 局部过滤器(GatewayFilter)
    • 全局过滤器(GlobalFilter)
  • 本文小结

概述

三个知识点

  1. 作用:过滤器就是在请求的传递过程中,对请求和响应做一些手脚
  2. 生命周期:Pre Post
  3. 分类:局部过滤器(作用在某一个路由上)全局过滤器(作用全部路由上)

在Gateway中,Filter的生命周期只有两个:“pre”和“post”。

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


过滤器类型

Gateway 的Filter从作用范围可分为两种:GatewayFilter与GlobalFilter。

  • GatewayFilter:应用到单个路由或者一个分组的路由上。
  • GlobalFilter:应用到所有的路由上。

局部过滤器(GatewayFilter)

局部过滤器(GatewayFilter)是针对单个路由的过滤器,对访问的URL过滤,切面处理。在Spring Cloud Gateway中通过GatewayFilter的形式内置了很多不同类型的局部过滤器。

过滤器工厂 作用 参数
AddRequestHeader 为原始请求添加Header Header的名称及值
AddRequestParameter 为原始请求添加请求参数 参数名称及值
AddResponseHeader 为原始响应添加Header Header的名称及值
DedupeResponseHeader 剔除响应头中重复的值 需要去重的Header名称及去重策略
Hystrix 为路由引入Hystrix的断路器保护 Hystrixcommand的名称
FallbackHeaders 为fallbackUri的请求头中添加具体的异常信息 Header的名称
PrefixPath 为原始请求路径添加前缀 前缀路径
PreserveHostHeader 为请求添加一个preserveHostHeader=true的属性,路由过滤器会检查该属性以决定是否要发送原始的Host
RequestRateLimiter 用于对请求限流,限流算法为令牌桶 keyResolver、rateLimiter、statusCode、denyEmptyKey、emptyKeyStatus
RedirectTo 将原始请求重定向到指定的URL http状态码及重定向的url
RemoveHopByHopHeadersFilter 为原始请求删除IETF组织规定的一系列Header Header名称
RemoveResponseHeader 为原始请求删除某个Header Header的名称
RewritePath 重写原始的请求路径 原始路径正则表达式以及重写后路径的正则表达式
RewriteResponseHeader 重写原始响应中的某个Header Header名称,值的正则表达式,重写后的值
SaveSession 在转发请求之前,强制执行websession::save操作
secureHeaders 为原始响应添加一系列起安全作用的响应头 无,支持修改这些安全响应头的值
SetPath 修改原始的请求路径 修改后的路径
SetResponseHeader 修改原始响应中某个Header的值 Header名称,修改后的值
SetStatus 修改原始响应的状态码 HTTP状态码,可以是数字,也可以是字符串
StripPrefix 用于截断原始请求的路径 使用数字表示要截断的路径的数量
Retry 针对不同的响应进行重试 retries、statuses、methods、 series
RequestSize 设置允许接收最大请求包的大小。如果请求包大小超过设置的值,则返413Payload Too Large 请求包大小,单位为字节,默认值为5M
ModifyRequestBody 在转发请求之前修改原始请求体内容 修改后的请求体内容
ModifyResponseBody 修改原始响应体的内容 修改后的响应体内容

全局过滤器(GlobalFilter)

全局过滤器作用于所有路由,无需配置。通过全局过滤器可以实现对权限的统一校验,安全性验证等功能。

SpringCloud Gateway内部也是通过一系列的内置全局过滤器对整个路由转发进行处理如下


本文小结

本文详细介绍了gateway过滤器相关的内容和知识。介绍了相关的理论知识,后面会写一篇过滤有关的实际例子使用。

Gateway过滤器详解相关推荐

  1. Spring Cloud Gateway 过滤器详解

    一.概述 Spring Cloud Gateway根据作用范围划分为:GatewayFilter和GlobalFilter 1.filter的作用和生命周期 由filter工作流程点,可以知道filt ...

  2. HBase的布隆过滤器详解

    HBase的布隆过滤器详解 1.布隆过滤器的简单介绍 2.布隆过滤器的原理分析 2.1 哈希表存在的问题 2.2 布隆过滤器的原理 2.2.1 原理详解 2.2.2 布隆过滤器失误率的调节 2.2.3 ...

  3. flannel 介绍(UTP、VXLAN、Host Gateway模式详解)

    flannel 介绍(UTP.VXLAN.Host Gateway模式详解) 使用kubernetes安装flannel flannel backend 详解(flannel 各种模式详解) 1.UD ...

  4. android edittext 过滤英文名称,Android 限制edittext 整数和小数位数 过滤器(详解)

    写了一个过滤器,根据需要限制edittext输入的整数和小数位,如下代码: package allone.verbank.apad.client.component; import android.t ...

  5. Spring Cloud Gateway配置详解-过滤器

    Spring Cloud Gateway-过滤器 本节将为大家详细介绍Spring Could Gateway 内置过滤器相关内容. Spring Cloud Gateway 过滤器为大家提供了修改特 ...

  6. [转]布隆过滤器详解

    布隆过滤器 (Bloom Filter)是由Burton Howard Bloom于1970年提出,它是一种space efficient的概率型数据结构,用于判断一个元素是否在集合中.在垃圾邮件过滤 ...

  7. Java学习日报—Swagger介绍 与 布隆过滤器详解—2021/12/01

    目录 1. Swagger 1.1 介绍 1.2 Swagger 的优势 1.3 简单使用 1.3.1 集成 Swagger 管理 API 文档 1.3.2 在线测试接口 1.4 常用注解 1.5 参 ...

  8. gateway资源详解

    istio课程发布:https://edu.csdn.net/course/detail/29911 这是我目前见过最详细,最有深度的istio课程 学习目标 什么是gateway 在Kubernet ...

  9. shell sed过滤器详解

    1. Sed简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区 ...

  10. 微服务网关spring cloud gateway入门详解

    1.API网关 API 网关是一个处于应用程序或服务( REST API 接口服务)之前的系统,用来管理授权.访问控制和流量限制等,这样 REST API 接口服务就被 API 网关保护起来,对所有的 ...

最新文章

  1. php 上传乱码_如何解决php文件上传中文乱码问题
  2. linux获取url中文内容_Chrome OS 似乎将在Linux 的方向上更进一步
  3. UVa11855 Buzzwords(hash)
  4. 【知识星球】做作业还能赢奖金,传统图像/机器学习/深度学习尽在不言中
  5. Tomcat相关 -- 内存设置
  6. python tesseract ocr_使用Python和Tesseract OCR解决Captch
  7. android split工具,合并APKS为APK工具 Apktool M – AntiSplit on Android v2.4.0|张小北
  8. Android中Bitmap和Drawable 总结
  9. 最新XlEP分销系统网站源码
  10. (Java笔记)静态代理
  11. latex 标题chapter section里的英文和数字不加粗
  12. Harbor未授权创建管理员漏洞(CVE-2019-16097)
  13. [Excel知识技能] 筛选功能
  14. 前端背景图放置_如何在css中添加背景图?
  15. IEEE-754单精度浮点类型详解(完结篇)
  16. 最新的百度网盘不限速下载工具 - 100兆速度理论10m/s
  17. 食物链(带权并查集)
  18. 双向长短期记忆网络模型_基于深度双向长短期记忆网络的空气质量预测方法与流程...
  19. java继承a mya new c,【转】Android应用程序完全退出
  20. QT关于界面常用设置

热门文章

  1. linux安装红警教程,红警2任务安装教程_红色警戒2任务安装方法一览
  2. 访黏度计算公式_调节阀流量系数Kv的计算公式
  3. matlab如何以矩阵形式读取TXT格式大量带分隔符号的实验数据
  4. excel单元格中换行的办法/word中添加脚注的方法
  5. 基于 YOLOV5 的 SAR 图像舰船检测
  6. 数据分析,怎么做才够“精准”
  7. Html Imput 的用法
  8. oracle imp 版本错误,解决imp导入数据报IMP-00098错误
  9. 史上最最详细的win10虚拟机安装教程,手把手从头到尾
  10. 《青山翠影》伍 现实的拷问 | 一错又错