發布時間:2023-10-26作者來源:優智互聯瀏覽:980
基于API網關
API網關是什么?
API網關是一個服務器,是系統的唯一入口。從面向對象設計的角度來看,它類似于外觀模式。
API網關包裝了系統的內部架構,為每個客戶端提供定制的API。它還可能有其他責任,如身份驗證、監控、負載平衡、緩存、協議轉換、電流限制斷路器和靜態響應處理。
API網關模式的核心點是,所有客戶端和消費者都通過統一的網關訪問微服務,并在網關層處理所有非業務功能。通常,網關還提供REST/HTTP訪問API。
網關的主要功能
作為微服務后端服務的統一入口,微服務網關可以對后端服務進行統籌管理,主要分為數據平面和控制平面:
數據平面的主要功能是分離后訪問用戶的HTTP請求和微服務的聚合。路由和過濾功能是網關的核心能力模塊,使用微服務網關統一暴露后端服務的API和合同。此外,微服務網關還可以實現協議轉換、安全認證、熔斷限流、灰度發布、日志管理、流量監控等攔截機制和跨橫截面功能。網關模塊方案
控制平面的主要功能是對后端服務進行統一的控制和配置管理。例如,可以控制網關的靈活性和可伸縮性;配置可以統一分發;可以為網關服務添加標簽;后端服務的API合同可以通過在微服務網關上配置swagger功能向用戶公開,完成文檔服務,提高工作效率,降低溝通成本。
路由功能:路由是微服務網關的核心能力。請求可以通過路由功能微服務網關轉發給目標微服務。在微服務架構中,網關可以結合注冊中心的動態服務發現,實現后端服務的發現。調用方可以通過了解網關外部暴露的服務API,透明地訪問后端微服務。
負載平衡:API網關結合負載平衡技術,通過輪詢、指定權重、IP地址哈希等機制,利用Eureka或Consul等服務發現工具,實現下游服務的負載平衡。
統一權利評估:一般來說,內部網絡和外部網絡的界面都需要用戶身份認證,用戶身份認證將在一些大型系統中使用統一的單點登錄(SingleSignOn)系統,如果每個微服務都與單點登錄系統連接,顯然是浪費資源,開發效率低下。API網關是統一安全管理的絕佳場所。認證部分可以提取到網關層。微服務系統不需要注意認證的邏輯,只需要注意自己的業務。
協議轉換:API網關的一個主要功能是構建異構系統。API網關作為一個單一的入口,基于REST的協議轉換集成背景、AMQP、不同風格和實現技術的微服務,如Dubbo,面向WebMobile。、為特定客戶端提供統一服務,如開放平臺。
指標監控:網關可以計算后端服務的請求數量,實時更新當前的流量健康狀態,延遲統計URL粒度服務,或使用HystrixDashboard查看后端服務的流量狀態以及是否存在斷路器。
限流熔斷器:在某些情況下,需要控制客戶端的訪問次數和頻率,一些高并發系統有時需要限制流量。可以在網關上設置閾值。當請求數量超過閾值時,您可以直接返回錯誤,而無需繼續訪問后臺服務。當流量高峰或后端服務延遲或故障時,網關可以主動熔斷,保護后端服務,保持前端用戶體驗良好。
黑白列表:微服務網關可以使用系統黑名單過濾HTTP請求特征,攔截DDOS攻擊等侵蝕帶寬或資源迫使服務中斷等異常客戶端請求,并在網關層面進行攔截過濾。更常見的攔截策略是根據IP地址添加黑名單。在權利評估管理的路由服務中,后端服務資源可以通過設置白名單跳過權利評估管理直接訪問。
灰度發布:微服務網關可以根據HTTP請求中的特殊標記和后端服務列表元數據標記進行流量控制,實現灰度發布在用戶無感知的情況下完成。
流量染色:類似于灰度發布的原理,網關可以根據HTTP要求的Host、Head、Agent和其他標志染色請求。通過網關的流量染色功能,我們可以跟蹤后續服務調用鏈接,并進一步分析服務延遲和服務運行狀態。
文檔中心:網關與swagger相結合,可以向網關暴露后端微服務。網關作為一個統一的入口,為接口用戶提供API規范,以查看后端服務。無需知道每個后端微服務的swagger地址,因此網關可以聚合后端API。
日志審計:微服務網關可以作為統一的日志記錄和收集器,攔截服務URL粒度的日志請求信息和響應信息。