目錄
微服務專欄地址
目錄
1. 簡介
2. 什么是API網關
3. 為什么需要API網關
4. API網關在微服務架構體系中處於什么位置
4.1 調用者眼中的API網關
4.2 所處的位置
5. 網關技術實現有哪些
6. zuul網關工作原理是什么樣的
6.1 整體處理流程圖
6.2 請求生命周期
7. 技術上如何選型
1. 簡介
通過以下幾個問題去理解微服務中的一個重要組件:API網關。
什么是API網關
為什么需要API網關
API網關在微服務架構體系中處於什么位置
網關技術實現有哪些
zuul網關工作原理是什么樣的
技術上如何選型
2. 什么是API網關
API網是一個反向路由:屏蔽內部細節,為調用者提供統一入口,接收所有調用者請求,通過路由機制轉發到服務實例。
API網關是一組“過濾器”集合:可以實現一系列與核心業務無關的橫切面功能,如安全認證、限流熔斷、日志監控。
3. 為什么需要API網關
什么是API網關中已給出理由,簡單總結:
屏蔽內部細節
反向路由
安全認證
限流熔斷
日志監控
4. API網關在微服務架構體系中處於什么位置
4.1 調用者眼中的API網關
統一入口
內部服務對於調用者是透明的
4.2 所處的位置
處於負載均衡與業務服務之間
API網關也可實現負載均衡功能
5. 網關技術實現有哪些
簡單列舉,不做比較,有興趣可查詢資料,后續為基於zuul網關來理解工作流程原理
1
zuul:是netflix開源的一個API Gateway 服務器, 本質上是一個web servlet應用。Spring Cloud已集成
kong:是一款基於Nginx_Lua模塊寫的高可用,易擴展由Mashape公司開源的API Gateway項目
6. zuul網關工作原理是什么樣的
因為后續API網關組件會聚焦於zuul,這里對zuul工作原理提前學習。
1
6.1 整體處理流程圖
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自動加載
6.2 請求生命周期
攔截請求
根據filter類型,執行已加載的filter chain
返回請求
7. 技術上如何選型
若使用的微服務框架是Spring Cloud,可選擇Netflix的zuul,已經很好的集成到SC中
kong ,當然,能力強的可以自定義實現滿足自己需求的API網關
---------------------
作者:AlienStar
來源:CSDN
原文:https://blog.csdn.net/crave_shy/article/details/81221738
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!