古詩詞大全網 - 藝術簽名 - 如何架構壹個合適的企業API網關?

如何架構壹個合適的企業API網關?

企業級API網關必須要買商業的API網關才可以,開源的只適合有技術實力的互聯網企業使用,傳統企業的API網關的功能開源的遠遠滿足不了需求,要在開源的基礎上改動很大的工作量,企業最終要形成企業自己的API接口統壹管理平臺實現API的全生命周期管理,而不是定位在純網關級別。我們是專業做企業級API網關的RestCloud,非常清楚要做好裏面的工作量非常大。

在我們講的微服務架構下的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網關調用的內部服務出現異常的頻率達到某個閾值時,那麽API網關會做臨時熔斷處理即臨時斷開鏈路,暫時停止妳對那個內部服務的調用。臨時熔斷後,過了壹段時間後,鏈路會自動閉合回去。

6.日誌信息記錄:會記錄客戶IP、客戶請求參數、返回結果、異常信息等信息。

7.負載均衡:?提供API接口的負載均衡,能夠處理API接口的高並發訪問,防止服務雪崩。

8.安全防護:提供嚴格的認證服務,支持算法簽名,用戶使用API網關提供的密鑰進行認證,沒有被授予密鑰的客戶端無法調用業務API接口,經過認證授權的請求才能到達後端應用服務。同時SSL加密。

9.灰度發布:支持API接口線上灰度部署,減少應用版本切換風險。

技術選型

企業api網關現在越來越多被大型企業選擇,可以了解nginx體系下的openresty,openrestyedge,kong。java體系下的springcloudgateway作為選型。壹般完全自研沒必要的,門檻有點高。

需求範圍

企業api網關是個統稱,包含的功能很多,如數據路由,協議轉換,熔斷,限流,應用防火墻,灰度發布等等。如果要自主研發,先明確下需求範圍。

高可用

企業網關作為壹個流量入口,自身的高可用要求很高,有問題如同斷網的影響。需應用和系統架構師商討設計。