成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

融云首席架構師李淼:直播互動系統的設計與實踐

原創
開發 項目管理 企業動態
在直播過程中,出現閃退、卡頓等問題,會非常影響用戶體驗。 當用戶量達到一定規模,高并發之下,IM功能的穩定性將會面對前所未有的考驗。基于此,記者在51CTO主辦的WOT2017全球架構與運維技術峰會上,對融云首席架構師李淼進行了專訪,話題主要圍繞直播互動系統的設計與實踐展開。

【51CTO.com原創稿件】社交垂直化的今天,APP利用垂直社交關系鏈來提升用戶黏性是通往成功的重要手段,選擇直播互動是打通陌生人社交關系鏈的最佳方式。基于直播業務場景的實時特性,直播互動目前主要通過聊天室產品實現。看似聊天室只是一個功能,但消息處理是最大的難點。在直播過程中,出現閃退、卡頓等問題,會非常影響用戶體驗。 當用戶量達到一定規模,高并發之下,IM功能的穩定性將會面對前所未有的考驗。基于此,記者在51CTO主辦的WOT2017全球架構與運維技術峰會上,對融云首席架構師李淼進行了專訪,話題主要圍繞直播互動系統的設計與實踐展開。

直播互動系統的一些特性

融云首席架構師李淼:直播互動系統的設計與實踐

李淼·融云首席架構師兼聯合創始人

融云于14年成立之時,只提供聊天室這樣的服務,國內直播平臺還未大批興起。15年,源于大量客戶對直播互動的需求,融云預見直播平臺未來會有很好的前景,開始與客戶積極交流來挖掘需求,最終將聊天室轉變為直播互動平臺。經歷了16年一個完整的直播元年,直播互動系統也正式步入了成熟期。

當問及直播互動系統的特性,李淼表示:

其一,直播互動平臺的用戶量實際上是沒有上限的,因為不可能去限制一個主播加入觀眾的成員數量。

其二,通過把消息進行分級控制的方式來保證禮物、紅包等消息傳輸的可靠性。

其三,瞬時消息吞吐量大,融云某個聊天室曾經一秒鐘產生過近千萬的消息。

其四,就是針對伸縮及穩定性方面的高要求。

消息平臺的邏輯設計及這樣做的原因

消息是直播互動系統最重要的元素,消息的處理做的好不好會直接影響用戶的體驗。融云的消息平臺邏輯設計是怎樣的呢?

如上圖,李淼用一張時序圖針對這個問題進行了解答。A客戶端是發消息方、服務端是融云整個后端平臺,B客戶端是接收消息方。首先,客戶端向服務端發送消息,服務端接收消息先進行消息驗證,消息驗證里面包含了高危詞、敏感詞的過濾,反垃圾系統對消息進行反垃圾的過濾,以及權限驗證,當消息通過之后,對消息優先進行存儲,之后會給A客戶端返回應答,告知消息已經發送成功。這時服務端會遍歷成員分發通知。值得注意的是,現在還沒有向客戶端發送消息實體,當接收客戶端接收消息通知時,會從自己本地存儲里面拿到當前直播間里面最新的消息版本號,同時向服務器發起同步請求,服務器獲取客戶提交的版本號之后,會以這個版本號為起點到最新版本號把所有消息全部拿回來返回給客戶端,客戶端收到這個消息進行消息展示以及存儲這個最新版本號。整個通信流程,版本號獲取方式,跟常用版本控制軟件比較類似。

之所以把流程變得這么復雜,在發送完通知之后再同步消息,主要原因如下:

  • 通知的推送無需服務質量保證
  • 服務器端存儲的消息順序與到達的客戶端順序一致
  • 當消息密集時可以將多條消息進行合并
  • 可以控制下發的消息條數
  •  以存儲分級實現消息分級

消息平臺在服務端實現細節及最佳應用實踐

當問及直播消息系統于服務端的實現細節,李淼主要從數據預處理、消息分級、消息存儲和消息分發隊列四方面進行了介紹,但在實際服務開發過程中,優化還有很多。

數據預處理。當服務端接收消息之后優先對數據進行序列化以及存儲,序列化消息和要下發的客戶端數據要保持一致,通過這種預處理的方式,CPU的使用率在當前基礎上降低了30%。

消息分級存儲。根據消息類型按照中、高、低序列進行分級存儲。

Skiplist轉化為環形隊列存儲。每條消息有唯一且遞增版本號,消息按照版本號順序存儲。這樣的數據在內存存儲情況下,跳表是一種非常合適的數據結構。但是,跳表時間復雜度和空間復雜度比較大,同時往跳表中插入數據時使用的鎖范圍非常大,會對服務器產生一些額外的開銷。之后,由跳表演進成一種類似環形隊列的數據結構,對服務器性能開銷提升很多。

Map與隊列構建復合數據結構,降低無意義消費。服務端下發通知,對于通知來講在這一時刻無論有多少條消息,每個用戶只有一條通知,通過Map與隊列構建這樣的復合結構進行存儲。隊列里面存儲是數據的指針,Map存儲用于下發的通知實體,Map使用的key為用戶標識,這樣可以降低無意義的消費。

融云最新版線上直播互動平臺的整體架構

直播互動平臺的2.1架構

談到直播平臺的架構,李淼表示,如上圖,融云目前正在使用的架構分為連接層、業務層和存儲層等。連接層和業務層構建成整個大的集群,然后進行服務。連接層主要是負責客戶端與服務器保持長連接,同時將客戶端的協議與內部服務的協議進行相互轉化。

業務層負責IM相關業務處理,業務層采用的是微服務架構,線上服務有40多個類型,但對于直播互動平臺包含如下三項服務:

第一:上行控制服務,主要目的是用于處理接收的上行客戶端的消息,進行敏感詞和高危詞的過濾。這個服務的負載方式采用的是隨機分配的負載方式。

第二,直播服務,負責維護直播間成員關系和負責接收上行控制服務給它的消息,上行控制服務會先期進行消息拋棄,拋棄到直播服務可以接收的范圍之內,將消息下發到直播服務,直播服務再廣播到直播消息服務。

第三:直播消息服務,負責給用戶進行分發通知,是以用戶ID進行一致的哈希方式進行負載。每個服務節點包含部分用戶關系。整個直播消息服務構建了一個整體成員關系,他等同于直播消息服務上的一個節點。這層除分發通知外,還負責客戶端同步拉取獲取的消息。

寫在最后:

針對關于融云在直播互動核心競爭力的問題,李淼老師,這樣回答:“ 我們融云提供的是直播互動平臺,是一個基礎PAAS服務,本身并不會去做直接面對用戶的直播APP。融云最大的特點就是認準一件事死磕,不停優化服務提升能力,之后再反哺給客戶。我們經常與客戶進行溝通,收集他們對直播互動這塊的需求。需求拿來之后,產品人員會對這些需求進行抽象提煉,將他們變成平臺能力,再提供給更多的客戶。通過這種方式,我們擁有了豐富功能以滿足客戶的業務需要,同樣對新客戶也給他們提供了更多的產品可能性。性能上也得益于現在整個后端研發平臺的人才梯隊的建設,融云目前有很多高端人才負責這一塊的工作,同時我們擁有大量各種業務模式的客戶,也遇到過各類場景下產生的突發事件,通過這些問題解決和能力提升,所以在性能完全可以滿足客戶的需要”。

【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】

責任編輯:王雪燕 來源: 51CTO
相關推薦

2018-06-13 09:25:27

IT系統架構隱私李聰

2017-08-24 08:40:28

直播互動平臺海量消息

2017-04-20 14:41:35

融云WOT即時通訊云

2015-08-30 10:00:32

七牛云存儲計算

2016-08-29 11:33:23

京東云云計算云安全

2009-12-18 10:22:50

Ray Ozzie架構師

2016-04-07 10:35:46

架構設計架構師滴滴出行

2017-06-01 09:34:53

公有云數據遷移

2016-04-15 00:47:14

滴滴出行架構師架構設計

2016-04-07 09:39:33

雪球唐福林實踐歷程

2009-06-30 16:34:44

微軟

2012-03-21 17:30:21

百度架構師

2009-06-09 10:02:57

微軟云計算服務器

2010-04-20 09:18:00

架構師

2011-03-11 15:38:08

Java

2012-04-26 10:29:55

新浪云計算SAE

2012-11-01 15:14:49

京東數據部架構師

2012-08-16 14:40:52

2011-07-15 09:44:20

Ruby

2012-10-25 15:03:35

SAE新浪云計算平臺云計算
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一区二区三区视频 | 久久久亚洲一区 | 国产高清美女一级a毛片久久w | 欧美第一区 | 成人小视频在线观看 | 日韩精品免费在线观看 | 国产一区二区三区在线 | 一区二区三区播放 | 欧美日韩亚洲国产 | 日韩国产精品一区二区三区 | 久久久区 | 五月综合激情婷婷 | 国产在线网站 | 国产一区二区中文字幕 | 精品在线观看一区二区 | 精品久草 | 美女爽到呻吟久久久久 | 中文在线播放 | 水蜜桃久久夜色精品一区 | 国产精品久久久久久久粉嫩 | 国产一区二区免费在线 | 国产一区久久 | 91欧美激情一区二区三区成人 | 久久大| 女同av亚洲女人天堂 | 国产视频精品视频 | 国产一级精品毛片 | 精品国产免费人成在线观看 | 国产欧美视频一区二区三区 | 成人精品国产免费网站 | 国产欧美精品一区二区色综合朱莉 | 久久久久国产精品免费免费搜索 | 亚洲少妇综合网 | 欧美一区成人 | 不卡在线视频 | av无遮挡| 日韩精品一区二区三区在线播放 | 久久久久国产一区二区三区四区 | 日本久久精品视频 | 欧美一区二区 | 久久6|