編者按:本文系餓了麼架構師-孫立偉在掘金技術社群和餓了麼主辦的《掘金 x 餓了麼技術沙龍 | 架構實踐專場》 活動上的分享整理。這次講師帶來了哪些乾貨?本人有幸參與本次活動,將講師分享內容進行了一個小總結,希望能幫到未能到場的同學們~受限本人水準,總結可能稍有偏差或者不到位不清晰之處,還望見諒並請指出~
演講內容簡介:Stargate Cluster 是一個基於容器的創新型微服務閘道器,整合了API的許可權認證和審計管理。目前已經在餓了麼大規模使用,並與另一個產品API Portal整合,自動生成了HTTP和SOA的介面文件,極大的提高了業務系統的研發效率。
基本概念
API(Application Programming Interface,應用程式程式設計介面)是一些預先定義的函式,應用將自身的服務能力封裝成API,並通過API閘道器開放給使用者呼叫。
API包括基本資訊、前後端的請求路徑和引數以及請求相關協議。
API分組
API分組是同一種業務API的集合,一個API分組可視為一種服務(如徵信查詢服務)。API開發者以API分組為單位,管理分組內的所有API。
環境
環境定義了API生命週期管理過程中的不同狀態,API可以被髮布到不同的自定義環境中。
流量控制
流量控制支援從使用者、應用和時間段等維度限制對API的呼叫次數,保護後端服務。
應用
應用(APP)定義了一個API呼叫者的身份。可以將一個API授權給多個應用,也可以將多個API授權給同一個應用。
概括: API閘道器不是一個業務系統,它是一個類似於請求轉發的系統,它的存在是控制請求的業務許可權統一化管理的。
Stargate Cluster 功能特點
• 將RPC服務⾃動對映成HTTP API服務
• 深度整合釋出系統, HTTP服務實現⾃動化部署
• 持Groovy指令碼
• 每個業務都是獨⽴的Docker叢集,互不影響
cluster會把介面轉成http介面提供給前端,如下圖
上圖的前端是包括web app 第三方,通過HTTP介面呼叫Stargate cluster,Stargate cluster進行一系列的鑑權校驗,許可權控制等,然後把流量打到具體的後端業務系統
Stargate cluster支援http和cpc,開發者只需要提交介面定義,前端就可以進行工作
提交後cluster提供全自動化部署,自動部署支援測試環境,線上環境,cluster還支援自動生成HTTP文件,省去開發人員編寫文件的時間
cluster好處:
每個公司都在做API閘道器,對比餓了麼跟某雲廠
優點:
1,餓了麼實現了自動化部署上線
2,自動轉義HTTP介面
3,支援HTTP和RPC
缺點:
1,沒有SDK
2,不知道目前承載的QPS