1. 程式人生 > 其它 >技術分析| 音視訊服務叢集如何實現全球多中心化排程

技術分析| 音視訊服務叢集如何實現全球多中心化排程

anyRTC提供全球領先的實時音視訊雲服務,客戶涉及社交娛樂,金融保險,政企,安防等行業,累計幫助全球近千家企業客戶獲得音視訊通訊能力。

面對龐大客戶音視訊的需求,利用多中心化排程的服務架構,扛住了千萬級的高併發,做到靈活排程,為廣大客戶帶來優質的音視訊體驗。

在客戶請求量和流量暴增的情況下,anyRTC的音視訊服務無論何時都能做到零故障彈性的伸縮。anyRTC的流媒體傳輸使用分層傳輸,而在這樣的傳輸架構下,多中心化的排程服務的作用至關重要。

單中心排程服務面臨的問題和挑戰:

一、網路延時大。比如香港到西歐或者北美,物理距離上就存在130-180ms的延時。

二、遠距離的網路傳輸更加不可靠,網路抖動多,波動大,丟包頻繁,故障多。

三、單點故障影響面更大。單中心化的排程它管理著全球巨大的一個網路,複雜不易維護,一旦出了故障影響大,甚至導致整體故障。

根據以上三點問題的分析,再加上客戶的定製需求,系統的災備等原因,服務架構從設計之初就引入了多中心排程的概念。

多中心化排程服務

多中心排程服務的設計,就是整張網有多個排程中心,每個排程中心負責某一單個區域內的資源排程分配。假設在港臺,歐洲、東北亞,東南亞、美洲以及中國分別都有一個排程中心(實際上服務的排程中心會更多,有機房的地方都能覆蓋到),它主要分為兩個層面:

第一個層面是業務邏輯。

第二個層面是下層的資料同步,anyRTC的叢集服務採用的是一種基於訂閱推送的方式做資料同步。比如當中國和歐洲的資料需要進行同步,那麼會在業務層抽象出一個Key,去告訴歐洲的排程服務在業務層需要訂閱哪一個Key。當中國的使用者在一個頻道內正在進行音視訊通話,突然有一個歐洲的使用者也進入了該頻道,那麼他是在另外一箇中心進行排程的,這個時候就會觸發同步的訂閱和推送,讓中國和歐洲的使用者之間能夠相互通訊,進行正常的跨中心音視訊通話。

多級容災的排程中心

具體到某一個排程中心,整套系統具有多級容災機制。首先在一個排程中心內,叢集中有多個區域,每一個區域裡面有不同的IDC供應商,每一個IDC供應商又有不同的伺服器,每個邏輯模組的伺服器是多臺,並且無差異,通過運維後臺的實時監控和排程系統,這樣就實現了相當於伺服器級別、IDC級別和區域級別的容災。假設某一區域的排程中心出現了故障,也會根據運營的DNS服務就近接入其他排程中心,保障使用者能夠正常的進行音視訊通話。

除了上面的音視訊服務的多中心排程架構外,anyRTC還自研了音視訊引擎,訓練音訊AI模型,給客戶端帶來高清流暢的視訊效果和低噪音,高保真的音訊體驗。

anyRTC的音視訊服務,不僅僅是隻能在公有云上部署執行,如果像金融、政企、安防等對資料比較敏感的客戶,anyRTC還可提供私有化部署方案,保障資料的安全性。不管多複雜的網路環境,服務架構靈活,只要客戶想使用音視訊服務,可保障“有網即可達”。