直播在互聯(lián)網(wǎng)市場中一直都處于穩(wěn)定發(fā)展的局面,雖然直播行業(yè)經(jīng)歷了不同時期的洗牌和考驗,但它還是依靠自身強大的變現(xiàn)能力“存活”到現(xiàn)在。而且隨著即將統(tǒng)一運營商服務和流量資費的不斷下調,更是給視頻直播軟件開發(fā)業(yè)務提供了發(fā)展“溫床”,比如接下來我要給大家分享的內容,開發(fā)過程中需要注意的網(wǎng)絡架構相關。本文主要以CDN為主來介紹相關的架構問題。 ![]() 對于傳統(tǒng)的點播業(yè)務來說,CDN只有下行分發(fā)不同。但是對于泛娛樂和游戲類的直播場景來說,直播架構是分為上行匯聚和下行分發(fā)兩種的。 1.主播推流模式 (1)直播端推流到上行邊緣節(jié)點。 (2)上行邊緣節(jié)點將流推到匯聚核心。 (3)匯聚核心收到流后,和 CDN 一樣,不需要主動將流分發(fā)到邊緣,一些轉碼、水印或錄制類的業(yè)務通常是在匯聚核心完成。 2.回源拉流模式 如果用戶在訪問到匯聚核心后,會向一個回源節(jié)點拉流,回源節(jié)點向客戶源站拉流。 3.下行觀看流程 (1)觀眾到邊緣節(jié)點拉取直播流。 (2)在邊緣節(jié)點上如果存在音視頻流,可以直接發(fā)送給觀眾,如果沒有就會向上一級回源。 (3)上一級節(jié)點可能是中轉節(jié)點,也可能是匯聚核心。通常會在兩種情況下選擇是否經(jīng)過中轉節(jié)點,即下行邊緣到匯聚核心鏈路質量和匯聚核心處理能力。 ![]() 對于CDN來說,是不可能單獨使用一個匯聚核心的。如果使用單獨的匯聚核心,一旦遇到網(wǎng)絡故障或者是高并發(fā)等情況發(fā)生,就會導致整個直播業(yè)務出現(xiàn)癱瘓的情況。況且,單獨的匯聚核心無論怎樣都是無法覆蓋全國的,所以就需要大量的中轉節(jié)點。通常,直播會使用多匯聚核心的架構,即以下兩種方式。 1. 鏈路選優(yōu) 即上行到一個鏈路最優(yōu)的核心,下行也到一個鏈路最優(yōu)的核心。兩個核心之間使用專線“打通”,從而保證傳輸質量。國內通常使用3個核心就可以覆蓋國內的主要運營商和區(qū)域,5個核心基本就能全覆蓋所有邊緣節(jié)點。鏈路選優(yōu)問題是需要進行長期的實時數(shù)據(jù)監(jiān)控的。比如,直播流在哪個匯聚核心,是匯聚核心之間互相能拉到流的基礎。如果需要考慮一些異常節(jié)點無法使用的情況,那么就需要進行對應的數(shù)據(jù)清理。需要注意的是:多一級拉流會增加首屏時間。 2.保證每個匯聚核心都有流 即下行邊緣無論如何都能拉到流。這一架構的優(yōu)點就是不需要使用數(shù)據(jù)庫進行記錄是推到了哪個核心,但是也容易存在以下幾個問題。 (1)上行邊緣到兩個核心的質量無法保證,如果上行邊緣到某個匯聚核心的鏈路質量較差,那么從這個匯聚核心拉流的用戶觀看質量肯定會很差。 (2)上行邊緣是需要推兩份流到匯聚核心的,這樣一來就會造成一定的帶寬浪費。對于直播來說,帶寬的耗費遠遠要比主播的收益要高得多。 (3)為了解決上行邊緣到所有核心的鏈路問題,就需要選取很多的中轉節(jié)點,或者是使用BGP的機房作為上行邊緣,這樣就會耗費更大的成本。 ![]() 在視頻直播軟件開發(fā)過程中,CDN的架構也是相當重要的。至于選擇哪種架構,還是要根據(jù)直播平臺自身的定位和資金等方面來決定的。 |
|
來自: 昵稱61929548 > 《待分類》