Zuul运行原理

总体来看(从上往下看),Zuul 2.0可以认为是一个Netty server,首先运行前置过滤器(pre-filters或者inbound filters),然后在通过Netty client代理请求到原始处理类,执行完成后再执行后置过滤器(post-filters或者outbound filters),最后返回响应。
如下图:


Zuul运行原理_第1张图片
image.png

过滤器


过滤器是Zuul处理核心业务逻辑的地方。他们具有执行大量操作的能力,能够在请求-响应生命周期的不同阶段运行。如上图所示。

  • Inbound Filters 在路由到原始处理类之前执行,一般用来进行授权、路由和修饰请求
  • Endpoint Filters 可以用来返回静态响应,否则ProxyEndpoint过滤器将路由请求到原始处理类
  • Outbound Filters 在收到来自原始处理类的响应后执行,一般用来指标、修饰用户的响应或者添加用户头

过滤器也有两种类型:同步(sync)和异步(async)。因为是运行在事件循环上,所以在过滤器中永不阻塞是很重要的。如果你需要阻塞,那可以在单独的线程池中使用异步(async)过滤器,否则使用同步(sync)过滤器。

你可能感兴趣的:(Zuul运行原理)