Zuul之Filter详解
生活随笔
收集整理的這篇文章主要介紹了
Zuul之Filter详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Zuul詳解
官方文檔:https://github.com/Netflix/zuul/wiki/How-it-Works
Zuul的中心是一系列過濾器,能夠在HTTP請求和響應的路由過程中執行一系列操作。
以下是Zuul過濾器的主要特征:
- 類型:通常在應用過濾器時在路由流程中定義階段(盡管它可以是任何自定義字符串)
- 執行順序:在類型中應用,定義跨多個過濾器的執行順序
- 標準:執行過濾器所需的條件
- 操作:滿足條件時要執行的操作
Zuul提供了一個動態讀取,編譯和運行這些過濾器的框架。過濾器不直接相互通信 - 而是通過RequestContext共享狀態,RequestContext對每個請求都是唯一的。
過濾器目前用Groovy編寫,盡管Zuul支持任何基于JVM的語言。每個Filter的源代碼都寫入Zuul服務器上的一組指定目錄,這些目錄會定期輪詢更改。更新的過濾器從磁盤讀取,動態編譯到正在運行的服務器中,并由Zuul為每個后續請求調用。
過濾類型
Zuul大部分功能都是通過過濾器來實現的。Zuul中定義了四種標準過濾器類型,這些過濾器類型對應于請求的典型生命周期:
- PRE:這種過濾器在請求被路由調用之前調用。我們可利用這種過濾器實現身份驗證、再集群中選擇請求的微服務、記錄調試信息等。
- ROUTING:這種過濾器將請求路由到微服務。用于構建發送給微服務的請求,并使用Apache HttpClient或Netflix Ribbon構建和發送原始HTTP請求的位置。
- POST:請求在路由到微服務之后執行。示例包括向響應添加標準HTTP標頭、收集統計信息和指標、以及將響應從源傳輸到客戶端。
- ERROR:過濾器在其中一個階段發生錯誤時執行。
除了默認的過濾器類型,Zuul還允許我們創建自定義過濾器類型。例如,我們有一個自定義STATIC類型的過濾器,它直接在Zuul中生成響應,而不是將請求轉發到后端的微服務。
Zuul請求的生命周期
Zuul請求的生命周期如下圖所示,改圖詳細的描述了各種類型的過濾器執行順序。?
轉載于:https://www.cnblogs.com/mmzs/p/10097538.html
總結
以上是生活随笔為你收集整理的Zuul之Filter详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 主从
- 下一篇: MySQL 查询表中某字段值重复的数据