官方文檔: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