新聞資訊

              首頁 -新聞資訊 -行業(yè)資訊 -網(wǎng)關模塊方案之基于API網(wǎng)關

              網(wǎng)關模塊方案之基于API網(wǎng)關

              發(fā)布時間:2023-10-26作者來源:優(yōu)智互聯(lián)瀏覽:1172

              基于API網(wǎng)關

              API網(wǎng)關是什么?

              API網(wǎng)關是一個服務器,是系統(tǒng)的唯一入口。從面向對象設計的角度來看,它類似于外觀模式。

              API網(wǎng)關包裝了系統(tǒng)的內(nèi)部架構,為每個客戶端提供定制的API。它還可能有其他責任,如身份驗證、監(jiān)控、負載平衡、緩存、協(xié)議轉換、電流限制斷路器和靜態(tài)響應處理。

              API網(wǎng)關模式的核心點是,所有客戶端和消費者都通過統(tǒng)一的網(wǎng)關訪問微服務,并在網(wǎng)關層處理所有非業(yè)務功能。通常,網(wǎng)關還提供REST/HTTP訪問API。

              網(wǎng)關的主要功能

              作為微服務后端服務的統(tǒng)一入口,微服務網(wǎng)關可以對后端服務進行統(tǒng)籌管理,主要分為數(shù)據(jù)平面和控制平面:

              數(shù)據(jù)平面的主要功能是分離后訪問用戶的HTTP請求和微服務的聚合。路由和過濾功能是網(wǎng)關的核心能力模塊,使用微服務網(wǎng)關統(tǒng)一暴露后端服務的API和合同。此外,微服務網(wǎng)關還可以實現(xiàn)協(xié)議轉換、安全認證、熔斷限流、灰度發(fā)布、日志管理、流量監(jiān)控等攔截機制和跨橫截面功能。網(wǎng)關模塊方案

              控制平面的主要功能是對后端服務進行統(tǒng)一的控制和配置管理。例如,可以控制網(wǎng)關的靈活性和可伸縮性;配置可以統(tǒng)一分發(fā);可以為網(wǎng)關服務添加標簽;后端服務的API合同可以通過在微服務網(wǎng)關上配置swagger功能向用戶公開,完成文檔服務,提高工作效率,降低溝通成本。

              路由功能:路由是微服務網(wǎng)關的核心能力。請求可以通過路由功能微服務網(wǎng)關轉發(fā)給目標微服務。在微服務架構中,網(wǎng)關可以結合注冊中心的動態(tài)服務發(fā)現(xiàn),實現(xiàn)后端服務的發(fā)現(xiàn)。調用方可以通過了解網(wǎng)關外部暴露的服務API,透明地訪問后端微服務。

              負載平衡:API網(wǎng)關結合負載平衡技術,通過輪詢、指定權重、IP地址哈希等機制,利用Eureka或Consul等服務發(fā)現(xiàn)工具,實現(xiàn)下游服務的負載平衡。

              統(tǒng)一權利評估:一般來說,內(nèi)部網(wǎng)絡和外部網(wǎng)絡的界面都需要用戶身份認證,用戶身份認證將在一些大型系統(tǒng)中使用統(tǒng)一的單點登錄(SingleSignOn)系統(tǒng),如果每個微服務都與單點登錄系統(tǒng)連接,顯然是浪費資源,開發(fā)效率低下。API網(wǎng)關是統(tǒng)一安全管理的絕佳場所。認證部分可以提取到網(wǎng)關層。微服務系統(tǒng)不需要注意認證的邏輯,只需要注意自己的業(yè)務。

              協(xié)議轉換:API網(wǎng)關的一個主要功能是構建異構系統(tǒng)。API網(wǎng)關作為一個單一的入口,基于REST的協(xié)議轉換集成背景、AMQP、不同風格和實現(xiàn)技術的微服務,如Dubbo,面向WebMobile。、為特定客戶端提供統(tǒng)一服務,如開放平臺。

              指標監(jiān)控:網(wǎng)關可以計算后端服務的請求數(shù)量,實時更新當前的流量健康狀態(tài),延遲統(tǒng)計URL粒度服務,或使用HystrixDashboard查看后端服務的流量狀態(tài)以及是否存在斷路器。

              限流熔斷器:在某些情況下,需要控制客戶端的訪問次數(shù)和頻率,一些高并發(fā)系統(tǒng)有時需要限制流量??梢栽诰W(wǎng)關上設置閾值。當請求數(shù)量超過閾值時,您可以直接返回錯誤,而無需繼續(xù)訪問后臺服務。當流量高峰或后端服務延遲或故障時,網(wǎng)關可以主動熔斷,保護后端服務,保持前端用戶體驗良好。

              黑白列表:微服務網(wǎng)關可以使用系統(tǒng)黑名單過濾HTTP請求特征,攔截DDOS攻擊等侵蝕帶寬或資源迫使服務中斷等異??蛻舳苏埱?,并在網(wǎng)關層面進行攔截過濾。更常見的攔截策略是根據(jù)IP地址添加黑名單。在權利評估管理的路由服務中,后端服務資源可以通過設置白名單跳過權利評估管理直接訪問。

              灰度發(fā)布:微服務網(wǎng)關可以根據(jù)HTTP請求中的特殊標記和后端服務列表元數(shù)據(jù)標記進行流量控制,實現(xiàn)灰度發(fā)布在用戶無感知的情況下完成。

              流量染色:類似于灰度發(fā)布的原理,網(wǎng)關可以根據(jù)HTTP要求的Host、Head、Agent和其他標志染色請求。通過網(wǎng)關的流量染色功能,我們可以跟蹤后續(xù)服務調用鏈接,并進一步分析服務延遲和服務運行狀態(tài)。

              文檔中心:網(wǎng)關與swagger相結合,可以向網(wǎng)關暴露后端微服務。網(wǎng)關作為一個統(tǒng)一的入口,為接口用戶提供API規(guī)范,以查看后端服務。無需知道每個后端微服務的swagger地址,因此網(wǎng)關可以聚合后端API。

              日志審計:微服務網(wǎng)關可以作為統(tǒng)一的日志記錄和收集器,攔截服務URL粒度的日志請求信息和響應信息。