En 400-6655-581
5
返回列表
> 資源中心 > 技術干貨 | 漫談API網(wǎng)關——API網(wǎng)關探索與實踐

技術干貨 | 漫談API網(wǎng)關——API網(wǎng)關探索與實踐

2019-11-29瀏覽次數(shù):583

軟件架構總是在不斷地演進迭代,20世紀90年代C/S架構非常流行,業(yè)務系統(tǒng)架構也都是單體架構的方式,系統(tǒng)之間數(shù)據(jù)交互非常少,隨著企業(yè)的業(yè)務系統(tǒng)越來越多,這就會導致數(shù)據(jù)的孤島問題,此時數(shù)據(jù)的互聯(lián)互通的要求非常迫切,基于HTTP和XML的遠程傳輸協(xié)議格式被很多廣泛采用,SOA概念在2000年被IBM首次提出,確實解決了企業(yè)的很多異構系統(tǒng)的集成問題。


時間來到互聯(lián)網(wǎng)時代,很多公司為了適應業(yè)務系統(tǒng)的靈活多變的業(yè)務需求,基于HTTP和JSON的架構風格逐漸成為企業(yè)開發(fā)的最佳實踐。SOA架構的集中式部署問題暴露,基于微服務分布式架構盛行起來,API網(wǎng)關作為微服務架構的核心組件,承擔著所有流量的統(tǒng)一入口。上游業(yè)務系統(tǒng)不用關心安全和流控,只需要關注業(yè)務實現(xiàn)即可。


API網(wǎng)關是企業(yè)整體架構的關鍵的角色,他主要是增強、保障、控制對于后端微服務的調(diào)用,對所有的上游業(yè)務調(diào)用是透明的,API網(wǎng)關需要保證服務調(diào)用安全、高效、準確。API網(wǎng)關主要分為兩類,一類是微服務網(wǎng)關,更貼近業(yè)務,一類是企業(yè)級應用網(wǎng)關,主要關注服務調(diào)用的流控和安全防護。


他們之間的差異點主要是以下幾個方面:




1. 部署位置不同


微服務網(wǎng)關主要是部署在內(nèi)網(wǎng),作為微服務內(nèi)部API的通訊。


企業(yè)級應用網(wǎng)關一般部署在DMZ區(qū)域或者在藏在負載均衡后面。


2. 功能側重點不同


微服務網(wǎng)關主要功能:服務導流、服務自動發(fā)現(xiàn)和路由、服務編排、業(yè)務規(guī)則定制化開發(fā)、服務熔斷、服務灰度發(fā)布。


企業(yè)級應用網(wǎng)關主要功能:全局性流控、統(tǒng)一安全認證、性能支持、負載均衡、IP黑白名單、安全防護。


3. 性能要求不同


微服務網(wǎng)關的性能只需要滿足服務的并發(fā)要求。


企業(yè)級應用網(wǎng)關的性能需要在關注全局的流量和并發(fā)支持。


4. 使用場景不同


微服務網(wǎng)關:主要集中于微服務內(nèi)部的網(wǎng)關調(diào)用場景。


企業(yè)級應用網(wǎng)關:主要是南北流量的入口,微信小程序、云端應用調(diào)用、移動APP調(diào)用、iPad平臺、第三方合作伙伴,都是從外網(wǎng)調(diào)用內(nèi)網(wǎng)的服務


5. 架構不同


微服務網(wǎng)關是微服務架構的一個基本組件,大部分互聯(lián)網(wǎng)企業(yè)使用Zuul的開源產(chǎn)品,下圖的架構使用的是性能和穩(wěn)定性更好的Kong作為微服務的API網(wǎng)關。


架構如下圖:





企業(yè)級應用網(wǎng)關主要是外部流量的統(tǒng)一入口,一般都是集中式部署,也會根據(jù)客戶的要求按照地域、業(yè)務領域進行劃分,組成企業(yè)級應用網(wǎng)關集群。


架構如下圖:





企業(yè)級應用網(wǎng)關并發(fā)一般都是非常大,并要求產(chǎn)品具有獨立性,不需要依賴于第三方使用,性能良好,很多偏互聯(lián)網(wǎng)行業(yè)都選擇Kong的開源產(chǎn)品,Kong社區(qū)活躍,GitHub上2萬多star,CNCF中的API網(wǎng)關里面的其他產(chǎn)品也都非常不錯,國內(nèi)的產(chǎn)品有OpenResty、Orange以及最新推出的APISIX產(chǎn)品,性能都非常出色,不過穩(wěn)定性有待驗證。


微服務網(wǎng)關有很多產(chǎn)品,他們一般都和業(yè)務需求相關,并和注冊服務發(fā)現(xiàn)產(chǎn)品無縫集成。業(yè)界用的最多的是Zuul以及Spring Cloud Gateway產(chǎn)品,由于是純Java開發(fā)的產(chǎn)品,性能沒有Kong產(chǎn)品好,所以很多互聯(lián)網(wǎng)公司都進行了二次改造,比如:游戲、電商、彩票等,他們?yōu)榱藵M足高并發(fā)和大流量的的需求,也會改造Kong來滿足微服務網(wǎng)關的功能。


未來微服務網(wǎng)關和企業(yè)級應用網(wǎng)關有融合的趨勢,一體化的解決方案也帶來了諸多好處。


●  統(tǒng)一配置,邏輯清晰,操作直觀


●  集成管理,尤其是鏈路跟蹤和服務質(zhì)量管理,一體化管理帶來更高的管理效率


●  把應用部署從技術視圖向業(yè)務視圖過度,避免了過去割裂的部署帶來的混淆


●  統(tǒng)一技術堆棧,降低了成本和維護復雜度


●  流量的整體把控,擴容和災備都更加簡潔


軟件行業(yè)沒有銀彈,任何架構都很難包治百病,不過保障API網(wǎng)關的高可用性和可擴展性需要基礎設施層面增加更多的技術投入和技術保障,這樣才能讓技術人員更好的專注于實現(xiàn)自動化測試和構建、持續(xù)集成和交付的一體化流程



未完待續(xù),下一系列主要講解派拉API網(wǎng)關的關鍵特性以及架構設計。