螞蟻金服 mPaaS 服務端核心組件體系概述:移動 API 網關 MGS

根據《開篇 | mPaaS 服務端核心組件體系概述》,咱們已經初步瞭解 mPaaS 平臺後端各組件的核心架構體系。前端

而在 mPaaS 服務端衆多組件中,移動 API 網關 MGS 是鏈接移動客戶端與服務端的組件產品。它簡化了移動端與服務端的數據協議和通信協議,從而可以顯著提高開發效率和網絡通信效率,是整個 mPaaS 服務中的核心入口。算法

接下來咱們將着重圍繞 mPaaS MGS 展開介紹,進一步瞭解這款能力有哪些特質:編程

爲何須要移動API網關

| 移動網絡接入架構演進小程序

image | left

傳統的單應用架構在團隊與業務增加,支撐多團隊多業務並行研發方面愈加力不從心。伴隨近年微服務架構風格的流行,愈來愈多的企業將自身服務微服務化,以前的大應用被拆分紅爲了多個分散的服務提供出來。與此同時,隨着移動互聯網、普惠金融等新機會的迅猛發展,企業愈來愈迫切地但願將現有成熟的後端服務開放出去。後端

此時在面對複雜的移動網絡環境,前有 Android/iOS/H5/小程序等多種前端須要接入,後有零零散散的各個微服務系統須要導出,就頗有必要有一套可適用於移動網絡環境,高性能高可靠易使用,路由不一樣類型前端與各個後端微服務,幫助各個服務提供統一的限流,緩存,安全,監控等處理的移動 API 網關作後端總入口。跨域

image | left

mPaaS MGS

| 現代化移動網絡接入架構最佳實踐緩存

mPaaS 上的移動 API 網關 MGS,來源於支付寶 App 多年億級網絡服務技術的積累。在螞蟻內支撐了支付寶、口碑、網商、聚寶、香港版等多個 App 數百個服務上萬個 API,常年保持 99.9999+% 高可用率,具備足夠的穩定性。安全

做爲移動網絡技術中「客戶端到服務端請求-響應模型」服務,經歷了多年雙11、雙12、春節紅包活動的海量請求考驗。在螞蟻金融雲公有云與私有云上,也爲 12306,廣發銀行,上海地鐵等客戶提供了高性能高可靠海量服務的支撐。服務器

image | left

MGS 底層利用 Netty 實現了高效的異步非阻塞服務,4c8g 單機 QPS 可達 1 萬+/s。網絡

前端支持 http / http2 / mmtp 等協議,支持 JSON / protobuf 等傳輸格式,支持客戶端 RPC 與 H5 標準 Rest 請求,可普遍適用於各類終端請求接入。

同時,爲了更好的支持雲上客戶已有業務的須要,MGS 後端支持了 HTTP / Dubbo / SOFA / HRPC / MPC 等異構後端,最大程度兼容業務原有服務,還能夠用 MGS 提供的 SPI SDK 直接在 API 函數簽名上使用註解註冊到配置中心,經過服務發現免去手動註冊 API 的繁瑣。

image | left

MGS 還內置了簡潔易用的 Web 管控頁面,能輕鬆管理租戶內 App 全局與各個 API 的功能配置,包括__配置簽名校驗 / 結果緩存 / 超時設置 / API 限流 / API Mock / API 受權 / 數據加密 / CORS 跨域 / 數據模型 / 後端地址__等,更改的配置寫入 DB 後會異步刷新到機房內各個網關節點,保證網關在處理客戶端請求時沒有 DB 等額外 IO 操做,進一步提高總體性能。

image | left

MGS 普遍用於包括金融地鐵等公共服務領域,爲了知足金融級安全監管要求,保障用戶數據的安全性,客戶端網絡 SDK 爲每一個請求數據增長簽名,而後經過 RSA / ECC / 國密等加密算法對數據加密傳輸到網關。

網關會驗籤覈對身份並將數據解密後轉發到後端業務,後端服務處理完成後網關會再加密返回客戶端。 經過這些措施,讓研發同窗專一處理業務的同時不用爲網絡數據安全擔憂。

image | left

在面對海量請求時,MGS 會經過結果緩存,超時設置,API 限流等功能來幫助後端提升性能,提供過載保護,這樣當大促等高峯期流量過來時,業務服務仍然可以正常運行,從而保證了業務系統的穩定性,防止高峯期時後臺服務器被壓垮。

同時網關支持限流時配置客戶端提示用戶的文案,方便產品運營定製。

image | left

藉助 API 受權功能,業務能夠很方便地經過 MGS 定製包括受權,Session 控制等旁路能力,受權接口自己也以網關 API 形式定義,可與其餘 API 同樣設置緩存限流等各類配置,從而統一業務編程模型。另外網關 SPI SDK 還支持切面攔截,方便業務服務內總體擴展。

image | left

在平常開發測試時,MGS 提供了 API Mock 與 API Test 方便 API 開發測試。

經過 API 客戶端代碼生成(Android/iOS/JS),自動生成多端 SDK,實現先後端分離,配合 SDK,讓業務研發同窗專一業務邏輯,無需關心底層通訊細節,團隊內也無需網絡專家,便可直接借力支付寶多年網絡優化經驗,從紛繁複雜的移動網絡開發中解放,最大化業務開發效率,讓研發今後愛上 API 研發。

image | left

最後,MGS 還提供了完整的數據監控與問題排查方案,經過給每一個請求生成惟一的 traceID 作鏈路跟蹤,結合不一樣類型的錯誤碼,可在出現問題時串起整個鏈路,迅速定位問題找到緣由。

image | left

mPaaS MGS 展望

| 支付寶億級網關架構能力開放

MGS 除了上述能力外,後續還會不斷升級,爲業務帶來更專業更高效的網關服務,包括開放 ABTest灰度、HTTP2 協議、移動調度、多機房多活等功能,用支付寶多年技術積累助力企業服務技術升級。

結語

經過本節內容,相信你們對 mPaaS 移動 API 網關服務 MGS 有了初步認識。 關於網關功能詳細介紹,能夠參考 mPaaS 移動網關官方文檔: t.cn/EUqYgZC

後續咱們將針對 mPaaS 其餘服務組件的設計與優化,展開更多探討。

往期閱讀

《支付寶 App 構建優化解析:經過安裝包重排布優化 Android 端啓動性能》

《支付寶 App 構建優化解析:Android 包大小極致壓縮》

《支付寶小程序框架淺析及如何在 mPaaS 內深度集成》

《開篇 | 螞蟻金服 mPaaS 服務端核心組件體系概述》

關注咱們公衆號,得到第一手 mPaaS 技術實踐乾貨

QRCode
相關文章
相關標籤/搜索