網(wǎng)易視頻云:專注于技術(shù)服務(wù)——異步通知系統(tǒng)

隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,云計算在資源層面競爭已經(jīng)進入白熱化的階段,網(wǎng)易視頻云定位于PAAS層面,從各個技術(shù)領(lǐng)域進行技術(shù)鉆研以提供給用戶更高效、更穩(wěn)定、更便捷的視頻直播技術(shù)服務(wù);notify系統(tǒng)作為網(wǎng)易視頻云對外技術(shù)服務(wù)的一員,提供面向海量用戶的高可用異步回調(diào)服務(wù)。

目前直播平臺大多采用以下架構(gòu)(圖一):客戶通過推拉流SDK或軟件直接與直播/點播平臺進行推拉流/轉(zhuǎn)碼交互,這樣的架構(gòu)下客戶企業(yè)應(yīng)用中對直播/點播狀態(tài)及數(shù)據(jù)的管理增加了更多條件限制,客戶企業(yè)應(yīng)用服務(wù)器在維護直播/點播數(shù)據(jù)信息需要考慮各種復(fù)雜場景因素:一、推流端非正常退出時客戶企業(yè)應(yīng)用服務(wù)器無法感知用戶真實的流狀態(tài);二、客戶企業(yè)應(yīng)用無法感知推流用戶使用第三方技術(shù)進行推拉流等。


因此為了讓客戶能更準確高效的獲取實時直播數(shù)據(jù),網(wǎng)易視頻云提供了一套高效穩(wěn)定的異步回調(diào)服務(wù)機制(圖二),給用戶提供實時高效的數(shù)據(jù)服務(wù)。


與內(nèi)部服務(wù)系統(tǒng)相比,外部異步通知不僅需要考慮海量數(shù)據(jù)處理的性能同時還需要考慮不同接收方網(wǎng)絡(luò)環(huán)境、數(shù)據(jù)處理耗時差異的影響。因此如何在負責環(huán)境下,給用戶提供可靠通知服務(wù)是首要解決問題。

系統(tǒng)設(shè)計


通知系統(tǒng)作為網(wǎng)易視頻云通用化海量通知發(fā)送平臺為設(shè)計目標并不關(guān)心具體業(yè)務(wù)場景(圖三),接入方只需要根據(jù)自己的業(yè)務(wù)狀態(tài)將發(fā)送目標地址、發(fā)送內(nèi)容進行通知注冊,通知系統(tǒng)即可根據(jù)相關(guān)用戶配置信息進行高容錯發(fā)送,在流程上盡可能提高發(fā)送方的業(yè)務(wù)處理效率;為更好支持業(yè)務(wù)通知系統(tǒng)還提供了提交、回滾可選項二階段注冊方式。

通知客戶端/api:提供給業(yè)務(wù)接入方進行通知注冊、查詢、提交、回滾功能的高可用RPC接口。

通知恢復(fù)處理器:用于觸發(fā)指定時間點的通知進行重發(fā)處理,對重發(fā)任務(wù)進行恢復(fù)調(diào)度。

消息通道:可根據(jù)不同業(yè)務(wù)或用戶配置不同的消息通道(圖四),一個通道被堵不會影響其他通道,一部分用戶處理緩慢不會影響全部客戶,從而起到故障隔離的目的。


通知協(xié)議處理器:真正執(zhí)行通知發(fā)送的組件,不同的接收方往往基于自己的技術(shù)使用不同的協(xié)議,如:http、https或其他協(xié)議,協(xié)議處理器按用戶配置選擇指定的協(xié)議進行通知處理,插拔式功能模塊更方便支持業(yè)務(wù)拓展。

決策器:決策處理器根據(jù)協(xié)議處理器處理結(jié)果和用戶的通知發(fā)送配置信息進行重試調(diào)度、消息降級、丟棄、歸檔處理;第一次通知發(fā)送往往是業(yè)務(wù)最關(guān)心的即時信息,因此具有通道中最高優(yōu)先調(diào)度權(quán),正常情況下第一次發(fā)送失敗后則會立即進行重發(fā)嘗試,否則根據(jù)策略進行消息降級處理,對于發(fā)送失敗越高的通知調(diào)度的優(yōu)先級越低。

monitor:監(jiān)控實時系統(tǒng)狀態(tài),監(jiān)控通知積壓情況。

通知系統(tǒng)內(nèi)部采用注冊和發(fā)送分離的方案,面向接入業(yè)務(wù)提供高tps數(shù)據(jù)寫入,讓業(yè)務(wù)處理更純粹,更效率;通知內(nèi)部基于通道、協(xié)議及決策器協(xié)同處理設(shè)計方案從細節(jié)上提高海量數(shù)據(jù)處理能力,使通知系統(tǒng)具備資源合理分配、故障隔離、優(yōu)先調(diào)度調(diào)控的能力,為通知發(fā)送發(fā)和接收方提供更高的質(zhì)量保障;同時通知集群采用高可用分布式服務(wù)框架,通知業(yè)務(wù)接入方和通知服務(wù)端采用點對點的調(diào)用方式,支持對業(yè)務(wù)透明的動態(tài)擴容方案。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容