天天看點

對微服務API服務網關的了解

目錄

微服務專欄位址

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網關中已給出理由,簡單總結:

屏蔽内部細節

反向路由

安全認證

限流熔斷

日志監控

對微服務API服務網關的了解

統一入口

内部服務對于調用者是透明的

對微服務API服務網關的了解

處于負載均衡與業務服務之間

API網關也可實作負載均衡功能

簡單列舉,不做比較,有興趣可查詢資料,後續為基于zuul網關來了解工作流程原理

1

zuul:是netflix開源的一個API Gateway 伺服器, 本質上是一個web servlet應用。Spring Cloud已內建

kong:是一款基于Nginx_Lua子產品寫的高可用,易擴充由Mashape公司開源的API Gateway項目

因為後續API網關元件會聚焦于zuul,這裡對zuul工作原理提前學習。

對微服務API服務網關的了解

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自動加載

對微服務API服務網關的了解

攔截請求

根據filter類型,執行已加載的filter chain

傳回請求

若使用的微服務架構是Spring Cloud,可選擇Netflix的zuul,已經很好的內建到SC中

kong ,當然,能力強的可以自定義實作滿足自己需求的API網關

---------------------

作者:AlienStar

繼續閱讀