官方文档:github.com/Netflix/zuu…git
Zuul的中心是一系列过滤器,可以在HTTP请求和响应的路由过程当中执行一系列操做。github
如下是Zuul过滤器的主要特征:后端
Zuul提供了一个动态读取,编译和运行这些过滤器的框架。过滤器不直接相互通讯 - 而是经过RequestContext共享状态,RequestContext对每一个请求都是惟一的。服务器
过滤器目前用Groovy编写,尽管Zuul支持任何基于JVM的语言。每一个Filter的源代码都写入Zuul服务器上的一组指定目录,这些目录会按期轮询更改。更新的过滤器从磁盘读取,动态编译到正在运行的服务器中,并由Zuul为每一个后续请求调用。框架
Zuul大部分功能都是经过过滤器来实现的。Zuul中定义了四种标准过滤器类型,这些过滤器类型对应于请求的典型生命周期:微服务
Apache HttpClient
或Netflix Ribbon
构建和发送原始HTTP请求的位置。除了默认的过滤器类型,Zuul还容许咱们建立自定义过滤器类型。例如,咱们有一个自定义STATIC类型的过滤器,它直接在Zuul中生成响应,而不是将请求转发到后端的微服务。调试
Zuul请求的生命周期以下图所示,改图详细的描述了各类类型的过滤器执行顺序。 code