阿里影業“雲智開放平臺”煉成記

阿里影業“雲智開放平臺”煉成記

作者 | 阿里文娛技術

出品 | CSDN(ID:CSDNnews)

阿里影业“云智开放平台”炼成记

前言

雲智是阿里影業旗下的影院數字化經營管理開放平臺,主要負責影院管理及影票賣品的售 賣。

本文以雲智開放平臺為例,將為您揭開 B 端垂類電影行業開放系統的高性能 API 網關、高 可靠消息服務、高安全性數據服務等技術內幕。

阿里影业“云智开放平台”炼成记

雲智開放平臺生態

阿里影业“云智开放平台”炼成记

開放平臺架構大圖

1.開放平臺技術大圖

阿里影业“云智开放平台”炼成记

開放平臺技術大圖

開放平臺的組成包括:泛 ISV 的調用方、綜管門戶、網關和業務系統,業務系統通過網關 開放業務給到 ISV 調用方,網關與業務系統使用泛化調用,綜管主要包括對 API 生命週期管理 等功能。

2.開放平臺部署架構圖

阿里影业“云智开放平台”炼成记

部署架構圖

部署架構包括:網關集群、綜管平臺集群、雲智各個業務集群,對於開放平臺,核心關注 網關和綜管集群,為了網關的高性能,在雲數據存儲這塊引入分佈式緩存。

阿里影业“云智开放平台”炼成记

如何搭建高性能的 API 網關

1.網關總體技術架構圖

阿里影业“云智开放平台”炼成记

API 網關技術架構圖

架構圖中的 5 層是網關真正的應用層功能,每一層都解決一個核心問題:

1)協議層:解決客戶端/調用方如何來連接網關的問題,主要做的事情,按照某種協議去 監聽,數據協議是怎麼樣的,最終轉換成網關內部私有協議;

2)控制層:一個請求過來之後,網關如何認證這個請求是合法的,是經過認證的請求,保 證每個請求都是安全的請求;

3)調度層:針對一些異常處理,流程路由的處理,這裡做的是要怎麼樣去處理的問題;

4)服務編排:API 和 Server 之間的映射和編排,複雜的場景都是在這層進行處理的;

5)調用執行:拿到這個請求之後,最終是調用外部的一個服務,是如何調用的,在這層實 現。

2.網關的緩存模式

1)網關緩存模式:

阿里影业“云智开放平台”炼成记

網關緩存示意圖

2)流程說明:a)網關會對緩存進行分級存儲,以保證最快的訪問速度,數據訪問的時候,訪問順序依次

是本地緩存->分佈式緩存->數據庫;

b)在保證數據一致性方面,由於緩存的是元數據,元數據的特性決定了其變動少,時效性 要求低的特性,因此,網關採取了分佈式緩存主動失效,本地緩存被動失效的策略,已減少代碼復 雜度。

3.多維度的流量控制

流量控制:既控制 API 在單位時間內允許被通過調用的次數,簡稱流控。

1)流量控制的原理

阿里影业“云智开放平台”炼成记

流量控制流程

2)工作流程 單機閥值策略:總閥值/機器數 * 80%;

全局流控策略:低於單機閥值:走內存計數;高於單機閥值:走分佈式緩存計數。

3)流控類型

阿里影业“云智开放平台”炼成记

流量控制類型

目前雲智開放平臺提供了以下流控方式,(1)API 的滑動窗口時間內的全局流量控制;(2) API 支持定製 APPKEY 進行流量控制;(3)基於 APP 維度的流控,對 APPKEY 訪問平臺 API 的流量進行控制。

阿里影业“云智开放平台”炼成记

高可靠的消息服務

1.總體架構

阿里影业“云智开放平台”炼成记

消息服務架構圖

2.消息模式

1)網關的消息通知是通過異步的 HTTP 回調+消費方的主動確認兩種方式來確保消息的可 達,異步的 http 回調可以理解為消息的推模式,而消費方主動確認則可以理解為消息的拉模式;

2)目前消息模式的使用場景主要是在異業會員之間信息拉通,例如會員消息註冊,會員信 息變更,積分變更等,均會使用消息來進行內部與外部系統信息的同步。

3.如何保證消息不丟失?

1)利用消息中間件本身的重試機制,確保網關能至少正確消費一次消息(at lease once);

2)接收消息後,持久化到磁盤,留待後續追溯與重試;

3)根據消息的訂閱關係投遞到對應的訂閱者,成功則更新消息狀態,失敗則留待定時任務 掃描;

4)對投遞失敗的消息,進行間隔 10,20,40 分鐘的重試,三次重試均失敗後,則標記為失敗,不再主動投遞;

5)消息消費方根據業務需要定期主動發起失敗消息的查詢以防止消息的遺漏。

阿里影业“云智开放平台”炼成记

高安全性的數據服務

雲智開放平臺採用 OAuth2.0 作為授權協議,授權流程可以簡單歸納為:

1)獲取臨時令牌 code;

2)用臨時令牌 code 換取長時令牌(refreshToken)以及訪問令牌(accessToken);3)訪問令牌過期後用長時令牌(refreshToken)刷新訪問令牌(accessToken)。授權及使用授權時序圖如下:

阿里影业“云智开放平台”炼成记

2.API 訪問控制

用於 API 訪問權限控制,可限制 API 只對部分商戶開放,或者不允許 APPKEY 跨商戶、 跨渠道等訪問。

在雲智開放平臺中,訪問控制主要由:權限組和訪問控制水平鑑權配合組成,開放網關增 加了訪問控制水平鑑權的功能,達到控制商戶訪問隔離、數據隔離。訪問控制原理如下:

阿里影业“云智开放平台”炼成记

API 訪問控制圖

對 APPKEY 進行訪問控制的設置,配置訪問策略,訪問策略可以配置為 API 接口的請求參 數,開放平臺網關會根據訪問策略判斷用戶的請求是否合法,不合法則拋出錯誤。

配置示例:

 {"商戶":["yunzhi"],"影院":["test1","test2"],"渠道":[H5]} 

3.API 返回數據控制

1)對於分配的每個 APPKEY,網關都會給其定義一個相應的數據訪問等級,目前一共存 在從 L1~L4 四個級別,安全等級從低到高遞增;

2)對於需要嚴格管控的高危接口,在配置的時候,需要明確每一個字段的定義,從低到高 同樣分別為 L1~L4;

3)通過插件機制對每個出參進行字段匹配的過濾,不符合權限等級的出參將被直接摘除。

阿里影业“云智开放平台”炼成记

可擴展、可維護

1.可維護性-API 的生命週期

阿里影业“云智开放平台”炼成记

API 生命週期管理圖

2.可擴展性-API 的插件機制

網關的協議監聽與解析層、API 邏輯處理層、調用協議與執行層,都作為組件,可插拔的 集成到網關內核中。

1)插件原理-類加載

阿里影业“云智开放平台”炼成记

插件機制類加載圖

雲智開放平臺新增的,有電影行業特色的插件包括:API 訪問權限控制-水平鑑權、支持雲 效環境項目標。

阿里影业“云智开放平台”炼成记

總結

雲智開放平臺是 https 通訊協議,多級緩存,消息中間件等技術的融合,專門為高性能數據 訪問與數據安全性把控而生的系統。達到了極速的訪問與全方位的數據安全管控,回顧從系統 的選型到誕生的整個過程,網關的演化也經歷了下面三個階段:

  • 具備基礎核心能力,基礎核心 = 服務訪問 + 穩定運行;

  • 具備平臺化能力,平臺化 = 高性能 + 數據安全 + API 規範與審核;

  • 垂類平臺特色能力,垂類化 = 插件化定製。

在這個過程中,沉澱核心技術,深入瞭解和落地這些技術細節,在每一次的演進中,都思考是否可以在現有技術上面,再進一步地優化,讓網關可以不但高效安全,並且易於維護,雖然過程困難重重,但是隻要不畏艱難,必定可以攀上高峰,在這個過程中,團隊的技術思想也在不斷的變化,系統也煉出了垂類平臺的特色。


分享到:


相關文章: