zuul是什么(zuul是什么意思)

Zuul 是 Netflix 开源的一个网关组件 API Gateway 服务器,本质上是一个 web servlet 运用。

zuul是什么(zuul是什么意思)

Zuul 在云平台上给予动态路由,监管,弹力,安全等边沿服务的框架。Zuul 相当于是设备及 Netflix 流运用的 Web 网址后面全部请求的前门。

zuul 的事例可以参考 netflix 在 github 里的 simple webapp,可以按 netflix 在 github wiki 上文档说明来进行使用。

zuul 工作原理

1.过滤器体制

zuul 的核心是一系列的 filters, 其作用能够对比 Servlet 框架的 Filter,或是 AOP。

zuul 把 Request route 到 客户解决逻辑 的过程中,这种 filter 参加一些过虑解决,例如 Authentication,Load Shedding 等。

Zuul 提供了一个架构,能够对过滤器开展动态的载入,编译,运作。

Zuul 的过滤器中间没有直接的互相通信,彼此之间通过一个 RequestContext 的静态类去进行数据传递的。RequestContext 类含有 ThreadLocal 变量来记录每个 Request 所要传达的数据。

Zuul 的过滤器是由 Groovy 写出,这种过滤器文档被放到 Zuul Server 里的特殊目录下边,Zuul 会定期轮询这种目录,改动完的过滤器会动态的载入到 Zuul Server 中便于过虑请求应用。

下面有几种标准的过滤器类型:

Zuul 大部分作用也是通过过滤器来完成的。Zuul 中定义了四种规范过滤器类型,这种过滤器类型对应于请求的常见生命期。

(1) PRE:这类过滤器在请求被路由以前启用。我们可利用这种过滤器完成身份认证、在集群中挑选请求的微服务、纪录调试信息等。

(2) ROUTING:这类过滤器将请求路由到微服务。这类过滤器用以搭建发给微服务的请求,并用 Apache HttpClient 或 Netfilx Ribbon 请求微服务。

(3) POST:这类过滤器在路由到微服务之后实行。这类过滤器可用来给响应加上标准的 HTTP Header、搜集统计数据和指标、将响应从微服务发给客户端等。

(4) ERROR:在别的环节发生错误时实行该过滤器。

内置的独特过滤器

zuul 还提供一类特殊过滤器,分别是:StaticResponseFilter 和 SurgicalDebugFilter

StaticResponseFilter:StaticResponseFilter 容许从 Zuul 自身形成响应,而非将请求分享到源。

SurgicalDebugFilter:SurgicalDebugFilter 容许将特殊请求路由到隔开的调节集群或主机。

自定的过滤器

除开默认的过滤器类型,Zuul 还容许大家建立自定的过滤器类型。

比如,我们能订制一种 STATIC 类型的过滤器,直接从 Zuul 中形成响应,而不将请求分享到后端微服务。

- END -