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 interfacefilterType指定filter类型
filterOrder指定filter执行的顺序
shouldFilter用来判断该filter是否需要执行,zuul提供了一个RequestContext的thread local变量用于保存请求内容,shoulFilter可以根据请求内容来判断是否需要执行当前filter.
实际过滤实现的逻辑在run方法中实现
网友评论