• gateway-过滤器执行顺序


    请求进入网关会碰到三类过滤器:当前路由过滤器、DefaultFilter、GlobalFilter。

    请求路由后,会将当前路由过滤器和DefaultFilter、GlobalFilter,合并到一个过滤器链(集合)中,排序后依次执行每个过滤器

     

    过滤器执行顺序
    1.每一个过滤器都必须指定一个int类型的order值,order值越小,优先级越高,执行顺序越靠前。
    2.GlobalFilter通过实现Ordered接口,或者添加@Order注解来指定order值,由我们自己指定
    3.路由过滤器和defaultFilter的order由Spring指定,默认是按照声明顺序从1递增。

    default-filters:
      - AddRequestHeader=Truth,lisi is freaking awesome! #ordered 1
      - AddXxxxHeader=Truth,lisi is freaking awesome! #ordered 2


    4.当过滤器的order值一样时,会按照 defaultFilter > 路由过滤器 > GlobalFilter的顺序执行。

    可以参考下面几个类的源码来查看:
    org.springframework.cloud.gateway.route.RouteDefinitionRouteLocator#getFilters()方法是先加载defaultFilters,然后再加载某个route的filters,然后合并。

    org.springframework.cloud.gateway.handler.FilteringWebHandler#handle()方法会加载全局过滤器,与前面的过滤器合并后根据order排序,组织过滤器链

    总结
    路由过滤器、defaultFilter、全局过滤器的执行顺序?
    1.order值越小,优先级越高
    2.当order值一样时,顺序是defaultFilter最先,然后是局部的路由过滤器,最后是全局过滤器

  • 相关阅读:
    js获取input文本框内容问题
    Windows下更改pip镜像源
    php用mysql方式连接数据库出现Deprecated报错
    FTP服务与配置
    mySQL安装与基础配置
    httpd安装与配置(编译安装)
    Samba简介与配置(匿名&本地用户验证)
    NFS服务简介与配置
    OpenSSH配置与基本使用
    spark 提交任务学习
  • 原文地址:https://www.cnblogs.com/linjiqin/p/15367237.html
Copyright © 2020-2023  润新知