Zuul2.0架构

时间:2024-04-11 12:18:16

架构概览

从更高角度看,Zuul2.0就是一个运行了好多前置过滤器(入口过滤器)的Netty server,通过一个Netty Client代理转发这些请求,然后执行一系列后置过滤器(出口过滤器),最后返回结果。

Zuul2.0架构

过滤器

过滤器是Zuul的核心逻辑所在。如上图所示,他们能够做大范围的操作,并且可以请求-响应周期的各个部分执行。

  • Inbound Filters在路由请求到后端服务之前执行,可以用于身份验证、路由和封装请求。
  • Endpoint Filters可以用来返回静态响应,否则内置的ProxyEndpoint过滤器会将请求路由到后端服务
  • Outbound Filters从后端服务获取响应后执行,可以用于度量,封装响应,自定义响应头。

还有两种过滤器类型:同步和异步。因为这些过滤器运行在一个事件循环机制上,所以绝对不要在过滤器里阻塞。如果要阻塞在一个异步过滤器中进行,可以使用一个单独的线程池。否则应该使用同步过滤器