我們所說的微服務架構下的API網關,壹般是指前三類使用場景。也就是說,它主要向其他應用程序或合作夥伴公開企業內部的API功能。作為客戶端和服務器之間的屏障,網關層主要扮演三個角色:
第壹種功能是隔離,作為企業系統的邊界,將外網系統與內網系統隔離開來。
第二個功能是解耦,使微服務系統中的各方能夠獨立、自由、高效、靈活地調整,而不用擔心影響其他方面。
第三個功能是搭建,通過擴展機制提供壹個場所,方便壹系列處理和處理請求。
第二:網關的好處
(1)網關層隔離了外部和內部,保證了後臺服務的安全性。
(2)外部訪問控制由網絡級改為運維級,減少了變更過程和錯誤成本。
(3)降低客戶端和服務之間的耦合,服務可以獨立發展。映射是通過網關層完成的。
(4)通過網關層聚合,減少外部訪問頻率,提高訪問效率。
(5)節省後端服務開發成本,降低線上風險。
(6)提供簡單的業務融合、灰色釋放和在線測試方案。
(7)易於擴展。
三:API網關要考慮的因素
1,安全問題
企業對外公開服務時,首先要保證服務使用的安全性,防止外部惡意訪問影響公司業務,尤其是涉及交易的服務,充分考慮安全性。為了保證安全性,我們需要考慮通信鏈路的建立、通信數據的加密、數據的完整性和不可否認性。
2.性能問題
作為企業API的入口,所有的請求都會通過API網關進行轉發。可想而知,對API網關的訪問壓力是巨大的,有的網站甚至達到每分鐘幾千萬的訪問量。尤其是在壹些互聯網公司,海量的移動終端需要時時刻刻與後端服務進行交互。如果不能保證網關的高性能,企業需要在網關層面投入大量的設備和成本。事情發生在壹家互聯網公司。由於網關的性能問題,網關中的機器數量需要與後臺服務器的數量保持同步。這種情況顯然是企業服務所容忍的。
四:API網關的功能
企業API網關應提供以下功能:
API網關功能
1.服務路由:外部服務訪問接口被映射到相應的內部服務訪問接口。
2.認證授權:提供用戶身份的認證和用戶權限的驗證,包括用戶身份的合法性、用戶角色訪問授權的驗證、用戶訪問授權的驗證、IP黑名單的驗證等。
3.超時處理:當API網關調用內部服務的響應時間超過自行開發的API網關後臺管理子系統中設置的最大允許超時時,API網關會立即停止調用,並向您返回相關消息。
4.限流控制:當API網關調用內部服務的頻率達到壹定閾值時,API網關會立即斷開鏈接。時間過後,鏈接會自動關閉。
5.熔絲處理:熔絲處理對於避免不必要的資源消耗特別有用。當通過API gateway調用異常內部服務的頻率達到壹定閾值時,那麽API gateway就會暫時熔斷,也就是暫時斷開鏈接,暫時停止妳對那個內部服務的調用。經過臨時熔斷,壹段時間後,鏈接會自動關閉回來。
6.日誌信息記錄:記錄客戶IP、客戶請求參數、返回結果、異常信息等信息。
7.負載均衡:?提供API接口的負載均衡,可以處理API接口的高並發訪問,防止服務雪崩。
8.安全保護:提供嚴格的認證服務,支持算法簽名,用戶使用API gateway提供的密鑰進行認證,未被授予密鑰的客戶端無法調用業務API接口,只有通過認證授權的請求才能到達後端應用服務。同時SSL加密。
9.灰度發布:支持API接口在線灰度部署,降低應用版本切換風險。
技術選擇
現在越來越多的企業api網關被大型企業選用。可以在nginx系統下了解openresty,openrestyedge,kong Kong。選擇java系統下的Springcloudgateway作為模型。壹般不需要完全做自研,門檻有點高。
需求範圍
企業api網關是壹個統稱,包含了數據路由、協議轉換、熔斷、限流、防火墻應用、灰色發布等多種功能。如果要自主研發,先明確需求範圍。
高可用性
企業網關作為流量入口,對自身的高可用性要求很高,出現問題就像斷網的影響。應用程序和系統架構師需要討論設計。