日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

導讀:TFBOYS“日光旅行”七周年演唱會近日成功舉辦,最高同時在線人數達78.6萬,口碑票房雙豐收。網易云信的大型直播解決方案全程支撐了網易云音樂的這場活動,本篇文章將和大家分享這場穩定、流暢、清晰的線上演唱會背后的故事。

8月22日,TFBOYS“日光旅行”七周年演唱會在網易云音樂平臺上與廣大粉絲們見面。據官方數據顯示,這場演唱會最高同時在線人數達78.6萬,打破線上付費演唱會世界記錄,取得了口碑票房的雙豐收。

此次演唱會采用了在線實時互動及演唱會現場的多場景導播切換,提供了主機位和三個藝人專屬機位流,同時每個機位流實時轉碼四個清晰度檔位,用戶可以根據喜好選擇自己想看的內容。

網易云信的大型直播解決方案,全程支撐了網易云音樂這場活動,今天我們來聊聊一場穩定、流暢、清晰的線上演唱會背后的故事。

一、大型直播架構

上圖是此次TFBOYS在線演唱會的直播媒體架構簡圖,可以看出一場大型活動直播涵蓋的技術方案點非常龐雜,這里我們先以推拉流鏈路、全局智能調度、流量精準調度以及單元化部署,對網易云信的大型直播方案做一個展開介紹。

1.推拉流鏈路

網易云信的大型直播技術架構,分為幾大部分:

·視頻直播中心(LMS, Live Manage Service),負責直播流的邏輯管理和操作控制,包括存儲和下發實時轉碼、加密等媒體處理的配置信息。

·實時互動直播服務,由連麥互動和直播兩部分組成,主播和連麥者的音視頻數據在互動直播高性能服務器合成為一道流后推流到直播流媒體服務器。

·直播源站服務(LSS, Live Source Service),網易云信自建的直播流媒體服務器節點,結合全局智能調度系統,提供第一公里的最佳鏈路選擇,同時融合支持接入多家CDN廠商。

·媒體處理服務(MPS, Media Processing Service),提供實時水印、實時轉碼、媒體數據加密等強大的流媒體處理能力。

·融合CDN與全局智能調度(GSLB, Golabal Server Load Balancing),提供敏捷智能的CDN調度策略和分配算法,結合全鏈路、端到端的流媒體控制,來達到最終端側優良的用戶體驗。

·客戶端SDK,提供推流、拉流以及上下行的調度能力,便于用戶快速接入使用網易云信平臺一站式的音視頻解決方案。

2.融合CDN與智能調度

網易云信提供的是一個端到端的服務,通過平臺的SDK執行一個類似HTTPDNS的調度,來做到真正根據用戶IP做就近的接入針對國內相對復雜的運營商網絡環境,云信在直播上行方面通過BGP網絡以及與相關運營商在網絡接入方面的合作,能夠更加精準地控制網絡鏈路的選擇。而對于下行,網易云信也提供了播放端的SDK接入,通過端到端的調度策略就近選擇合適的下行鏈路。

調度的準確性以及最終效果,依賴及時準確的數據支撐。我們有一個全鏈路、立體的數據監控體系,一方面利用CDN上的一些實時日志,另一方面結合自建節點、客戶端側上報收集鏈路上探測的數據,然后整合做一個實時計算來支撐整個調度的策略。

融合CDN方案,通過調度、監控、高可用等技術和手段來解決CDN網絡方面的問題,但是對于云信平臺上的用戶,就和在使用一個傳統的CDN網絡一樣沒有大的差異,這些技術細節對用戶透明無感知,用戶通過簡單易用的接入sdk,就具備了高可用、全鏈路控制的流媒體分發服務

3.流量精準調度

大型演唱會直播活動,尤其是正式開播時的進場階段,突發流量峰值會非常高,這就需要實時精準的智能調度策略。云信融合cdn的智能調度包含兩大部分:CDN分配調度和節點調度

節點調度,比較常見的是DNS協議解析調度和IP調度(302/HTTPDNS),前者由于DNS協議原因,調度生效時間較慢,而后者則可以做到請求級別的調度,也就是支持任意比例的負載均衡,更加及時精準。在云信智能調度的場景里,正常情況下會遵循IP調度,在IP調度解析失敗時,客戶端上會啟動loacl DNS解析邏輯,兩者的結合確保了調度的精準和穩定可靠。

Don't put all your eggs in one basket.

永遠不要將雞蛋放在同一個籃子里,從風險管控的角度來說,大型活動保障的CDN資源需要做到非常充分的保障,除了活動前針對用戶分布分析資源需求,確保各地區各運營商資源充足外,網易云信的融合CDN方案則是將多CDN廠商資源進行整合,實現智能調度。目標是通過質量、資源負載等多個維度動態調整CDN權重,最終確保用戶體驗。

4.單元化部署

上文所說,在大型直播活動中,短時間大量涌入的用戶請求,對以全局智能調度服務為主的相關非媒體流鏈路應用,也提出了更高的并發處理挑戰。除了上行的推流鏈路我們做了主備兩個單元的部署,非媒體數據鏈路上的服務我們也采用了單元化的部署方案。

在此部署方案下,可用性做到任意單元機房故障,不影響整體可用性,即異地多活。單元化部署遵循以下原則:

·單元化的依賴也必須單元化(核心業務)

·單元化粒度為應用,非api

·單元化技術棧對應用盡量避免產生侵入性

如上圖所示,非單元化的業務部署在主機房,單元化的業務則部署在主機房和單元機房。

二、穩定性與安全性的保障

1.上行鏈路穩定

超大型直播方案最核心的訴求就是直播穩定性,下面我們將以此次在線演唱會為案例,重點闡述一下網易云信大型直播的全鏈路穩定性架構

上圖是云信大型直播的媒體流鏈路示意簡圖,整體方案可以承受任何單節點、單線路、單機房網絡出口的故障。如直播源站部分,采用了多線策略收流,包含機房專線和4G背包方案,一主一備兩個線路。同時每個單元的源站集群都有4層負載均衡,一臺機器宕機不會影響整體可用性。LMS、LSS、MPS都是跨機房部署,所有服務模塊都可配置專有資源池供使用,保證不會受其他租戶影響。

整個推流鏈路采用雙路熱流,互為主備,且部署上是互相獨立的兩個單元,能做到支持Rack級別的故障災備。雙路熱流實現了自動主備切換,端上無需專門添加應用層的線路切換邏輯。當任何一個鏈路出現問題的時候,觀眾的直播流不會受到影響,端上平均卡頓感知時間在1s以內

除了推流鏈路的整體主備單元容災,每個單元的服務本身也會有容災手段。比如UPS接入,可以接受30min的供電故障,比如當實時互動流出現問題時,導播臺會推墊片流以保證鏈路數據不中斷。

2.下行鏈路穩定

在此次活動中,全局智能調度服務會承受較大的峰值壓力,在單元化部署的基礎上,我們經過了多輪壓測和性能調優,模型上可以支撐千萬級用戶在半分鐘內全部進入直播間

除了上述關于推流鏈路的高可用,下行鏈路也有相關的容災策略。當GSLB智能調度服務整體不可用,我們在客戶端SDK預埋了融合CDN的local DNS災備邏輯與比例配置,將云端的全局智能調度fail-over到客戶端的本地兜底調度,并保持大數據統計層面的各CDN廠商的流量分配均衡。

同時,客戶端也會有播放體驗方面的容災策略,諸如清晰度降級、線路調整等。

3.直播內容安全

當然,除了直播全鏈路的穩定之外,直播安全也十分重要。此次活動中,網易云信為TFBOYS活動鏈路多環節都提供了安全保障機制,如防盜鏈鑒權、IP黑白名單、HTTPS等能力,以及地區、運營商等下行調度的動態限制,實現全鏈路安全保障。

在此基礎上,此次活動采用了端到端的視頻流數據加密,直播場景的加密有幾點基本要求:壓縮比不變、實時性和低計算復雜度。除此之外,在融合多cdn的方案背景下,視頻流的加密必須考慮到CDN廠商的兼容性,比如須滿足以下要求:不破壞流媒體協議格式、視頻容器格式;metadata/video/audio tag的header部分不加密;對于avcSequenceHeader和aacSequenceHeader tag整體不加密。具體加密算法,可以采用一些流式加密算法,這里我們不再贅述。

三、監控報警與預案

一場大型直播將會有大量的計算節點參與,除了媒體數據處理與分發的各個服務器節點,還有分布在國內外的海量客戶端,我們對網絡鏈路、服務節點、設備端的健康與質量感知,都離不開數據監控系統。同時,我們在現有系統無法自動fail-over的故障場景下,需要人工預案介入,而后者的決策判斷,也強依賴于完善的全鏈路數據質量監控與報警系統。

1.全鏈路監控

整個直播鏈路的監控包含了上行推流鏈路的流質量、媒體流實時轉碼處理、端上播放質量、智能調度系統的可用性、業務量水位等相關監控數據。上行鏈路常見的QoS指標有幀率、碼率、RTT等,其維度包含主備線路、出口運營商、CDN廠商節點等。端上的QoS指標則包含了拉流成功率、首幀時長、卡頓率、httpdns緩存命中率,維度則覆蓋包含CDN廠商、國家、省份、運營商、直播流、清晰度檔位、客戶端等。

此次直播中,內容上支持了多種機位流以及多個清晰度的轉碼輸出流,同時通過多個CDN廠商進行分發,我們把上行鏈路中節點的碼率、幀率,直觀地通過N個指標卡集中展示在單個大盤頁面上,并且通過增加預警值進行異常顯示和彈窗消息告警。活動作戰室現場,我們采用了多個大屏展示,非常直觀地展現當前主備雙推流鏈路的實時幀率、碼率等情況,為現場地指揮保障提供了強大的數據決策支撐。

以下圖為例:藍色表示上行幀率,綠色表示正常的上行碼率,紅色表示碼率值過低,N/A表示當前沒有上行推流數據。

而在下行播放鏈路中,比較常用的指標就是卡頓率。下面是我們對卡頓相關的描述:

·一次卡頓:播放器持續2s發生緩沖區空,即播放器2s沒有拉到流

·一分鐘用戶卡頓:1分鐘窗口內,用戶只要卡頓一次,則該用戶計作卡頓用戶

·一分鐘用戶卡頓率:1分鐘窗口內,卡頓用戶數/總的用戶數

·一分鐘用戶零卡頓率:1分鐘窗口內,(總的用戶數 - 卡頓用戶數)/總的用戶數

為什么會選擇用戶卡頓率這個指標呢,而不是使用整體的卡頓采樣點/總采樣數呢?是因為我們更想看到有多少用戶沒有出現過卡頓現象,這更能直觀體現優質網絡的整體占比。通過對各省份用戶零卡頓率、用戶數排行,以及各省用戶卡頓率的觀察,我們可以非常直觀地找到卡頓嚴重的地區,以便重點關注,進行資源調度優化。

2.直播應急預案

Hardware faults,software bugs, and operator errors, such failures are a fact of life:not a problem that will someday be solved once and for all, but a reality that we must live with.

Armando Fox.2002.Torward Recovery-Oriented Computing. VLDB 2002.

任何一個系統,無論你號稱它被設計得多么健壯,它仍然會有故障時間的存在。硬件故障、軟件bug、人為操作失誤等等,這些都無可避免地存在著,他們未必是一個必須多少時間內將其徹底解決的問題,他們是我們必須認清并接受共存的一個事實。

所以,預案管理是大型直播活動保障中不可缺少的一環,我們遵循以下的預案原則:

1.預案信息明確:大盤自動監控不具備二義性,確保預案信息來源正確,觸發執行預案的條件明確且有數值化約束。

2.預案操作簡潔:所有的預案操作都有有簡潔明確(開關型)的操作輸入。

3.預案操作安全:所有預案要經過充分預演,同時預演操作本身需要有明確的確認機制,以確保在正常情況下不會被誤觸發。

4.預案影響:明確理清預案操作的影響,QA在預演階段需要對相關影響進行充分驗證。

此次活動的前期籌備中,我們總計進行了3次直播全鏈路的擬真演練,以及2次聯合互動現場、導播臺現場的活動全流程級別的彩排,另外進行了大大小小總計數十次的各類風險預案演練。所有演練過程中發現的問題,都會進行專項解決。

風險預案這塊,包含了各類資源故障、上下行鏈路質量、地區性網絡故障、CDN異常流量水位等在內的場景應對,其中資源故障包含了機器宕機、機架整體斷電、堆疊交換機宕機、機房外網出口不可用,我們均進行了風險預案演練覆蓋。下面列舉幾點網易云信大型直播解決方案中的部分預案機制:

·如果因為誤操作等導致非正常解密等,網易云信可在推流不中斷的情況下,動態中止流加密,客戶端無任何感知影響

·某家cdn在某地區運營商出現大面積故障癱瘓,該地區相應運營商線路的QoS指標會大幅度下降并觸發報警,網易云信將故障cdn在該地區運營商進行黑名單處理,動態停止對其的調度,將流量調度至正常提供服務的cdn廠商

·在兩路熱流均正常的情況下,但是正在分發的一路出現質量問題,方案可支持手動觸發主備切換,讓監控數據質量更好的另一路流參與分發,客戶端感知時間在1s以內

·因為一些不可抗因素,某機房出現大面積故障整體不可用,觸發鏈路報警,此時我們會緊急將流切至另一機房,故障感知與恢復的時間在一分鐘內

四、結  語

依靠網易云信的千萬級大型直播方案,此次活動圓滿完成,整體推流鏈路可靠穩定,下行流量分配合理,相關故障預案完整充分并真實發揮作用。干貨萬千,紙短情長,歡迎登陸網易云信官網咨詢網易云信大型直播方案,了解更多技術細節。

作者介紹

費曼,網易智企服務端開發工程師。碩士畢業于華中科技大學電信系,2016年加入網易云信,熱衷于大規模分布式系統和音視頻相關技術,愛好文學、體育和電影。

分享到:
標簽:網易 直播 保障
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定