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方法中实现

你可能感兴趣的:(spring cloud zuul学习笔记)