spring cloud zuul学习笔记

zuul框架流程

zuul的工作流程如下图所示:

zuul 工作流程

zuul是一个servlet实现,zuul runner负责具体的流程的实现。整个流程是由一系列的filter组成的。Filter Processor负责管理各个阶段运行对应类型的Filter。Filter Loader负责加载各种类型的Filter。

zuul runner的具体流程如下图所示:


zuul runner流程

zuul的Filter有4中类型:

pre : 路由前一些预处理的工作,黑白名单,鉴权可以在这个位置实现

route : 路由逻辑实现位置,实际转发请求到后端服务可以在这里实现

post :  从后端服务收到response后,可以对response进行一些定制处理,可以放在这个位置

error : 异常处理

Filter是怎么加载的

Filter 是在配置类ZuulServerAutoConfiguration中加载的。

load filters

能够扫描到的ZuulFilter会放在filters中,交给filterLoader管理。

默认加载的ZuulFilter有:

ZuulServerAutoConfiguration


ZuulProxyAutoConfiguration

自定义的Filter需要实现以下接口:

filter interface

filterType指定filter类型

filterOrder指定filter执行的顺序

shouldFilter用来判断该filter是否需要执行,zuul提供了一个RequestContext的thread local变量用于保存请求内容,shoulFilter可以根据请求内容来判断是否需要执行当前filter.

实际过滤实现的逻辑在run方法中实现

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容