目錄
微服務專欄位址
1. 簡介
2. 什麼是API網關
3. 為什麼需要API網關
4. API網關在微服務架構體系中處于什麼位置
4.1 調用者眼中的API網關
4.2 所處的位置
5. 網關技術實作有哪些
6. zuul網關工作原理是什麼樣的
6.1 整體處理流程圖
6.2 請求生命周期
7. 技術上如何選型
通過以下幾個問題去了解微服務中的一個重要元件:API網關。
什麼是API網關
為什麼需要API網關
API網關在微服務架構體系中處于什麼位置
網關技術實作有哪些
zuul網關工作原理是什麼樣的
技術上如何選型
API網是一個反向路由:屏蔽内部細節,為調用者提供統一入口,接收所有調用者請求,通過路由機制轉發到服務執行個體。
API網關是一組“過濾器”集合:可以實作一系列與核心業務無關的橫切面功能,如安全認證、限流熔斷、日志監控。
什麼是API網關中已給出理由,簡單總結:
屏蔽内部細節
反向路由
安全認證
限流熔斷
日志監控
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5iN1kjMlFzNyQDNiBDM0YTYyEzNmVjZkljMlVGZxYGZ28CX4AzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL4M3Lc9CX6MHc0RHaiojIsJye.png)
統一入口
内部服務對于調用者是透明的
處于負載均衡與業務服務之間
API網關也可實作負載均衡功能
簡單列舉,不做比較,有興趣可查詢資料,後續為基于zuul網關來了解工作流程原理
1
zuul:是netflix開源的一個API Gateway 伺服器, 本質上是一個web servlet應用。Spring Cloud已內建
kong:是一款基于Nginx_Lua子產品寫的高可用,易擴充由Mashape公司開源的API Gateway項目
因為後續API網關元件會聚焦于zuul,這裡對zuul工作原理提前學習。
zuul本身是一個Servlet
HttpServlet Request請求到達Zuul Servlet
通過ZuulFilter Runner ,并且根據routing filter 類型執行filter 鍊
根據FilterType類型不同,執行的順序不同且可完成不同的功能
pre:在請求被路由之前調用,可實作日志監控、身份認證、黑名單等功能
route:在路由請求時候被調用
post:在route和error過濾器之後被調用,可實作審計、統計等功能
error:處理請求時發生錯誤時被調用、可實作統一異常處理等功能
Request Context:在請求生命周期中共享變量
Filter的實作是可插拔的
腳本實作Filter
釋出到filter目錄中
由filter manager與filter loader自動加載
攔截請求
根據filter類型,執行已加載的filter chain
傳回請求
若使用的微服務架構是Spring Cloud,可選擇Netflix的zuul,已經很好的內建到SC中
kong ,當然,能力強的可以自定義實作滿足自己需求的API網關
---------------------
作者:AlienStar