美文网首页开源框架-SpringCloud系列
SpringCloud Gateway-过滤器执行逻辑链分析

SpringCloud Gateway-过滤器执行逻辑链分析

作者: 侯文_ad82 | 来源:发表于2020-04-01 07:55 被阅读0次

    Gateway过滤器的加载执行逻辑按照责任链的实际模式进行设计。GatewayFilter借助GatewayFilterChain实现责任链模式,按照过滤器的顺序依次执行对应过滤器。

    流程如下:

    关于GatewayFilter和GatewayFilterChain的接口定义如下:

    过滤器链 过滤器接口

    执行流程如下:

        a. 首次调用,在FilteringWebHandler的handle中,将Gateway的集合注入,并执行filter方法,如下图:

    责任链-首次执行

        b. 调用filter时,从上一步传入的GatewayFilter过滤器列表中获取到一个过滤器,此时默认为0。调用第一个GatewayFilter.filter方法,需要构建一个DefaultGatewayFilterChain对象传入。

    DefaultGatewayFilterChain.filter

    c.此时调用第一个Gateway的filter方法,按照顺序先执行RemoveCachedBodyFilter,最终执行完成业务后,又调用了传入DefaultGatewayFilterChain对象的filter。

    Gatewawy.filter

     d.后续反复执行b、c两步,直到GatewayFilter列表调用完成,或者中间出现异常终端。

    相关文章

      网友评论

        本文标题:SpringCloud Gateway-过滤器执行逻辑链分析

        本文链接:https://www.haomeiwen.com/subject/qtzwuhtx.html