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

每秒高達千萬分發,如何應對直播互動平臺中海量消息挑戰?

原創
開發 項目管理
由于直播平臺的特點,對系統功能設計的可靠性要求更高,同時,如何在直播火熱的當下快速實現直播平臺的構建,成為很多企業的現實需求。本文主要分享融云直播互動系統的設計與實踐,詳細介紹禮物、紅包等以消息為基礎的互動方案設計思路和實踐方案并闡述如何結合融云自身技術優勢,助力直播企業快速布局市場。

【51CTO.com原創稿件】由于直播平臺的特點,對系統功能設計的可靠性要求更高,同時,如何在直播火熱的當下快速實現直播平臺的構建,成為很多企業的現實需求。本文主要分享融云直播互動系統的設計與實踐,詳細介紹禮物、紅包等以消息為基礎的互動方案設計思路和實踐方案并闡述如何結合融云自身技術優勢,助力直播企業快速布局市場。

直播互動平臺的特點

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

目前,融云主要做實時通信云平臺,就是所謂的 IM 云,提供包含單聊、群聊、客服、推送、公眾賬號、直播平臺等云服務。得益于 2016 年直播市場的異常火熱,平臺每天可達到對外產生 2200 億條消息,峰值每小時 450 億,每秒高達千萬的分發。

直播互動平臺的特點是什么呢?我們做視頻直播的時候,可能有用戶需要跟主播以及其他用戶發一些文字消息、點贊消息等等進行互動,由于這些消息的存在,把以前單純的只是受眾于視頻的應用這種視頻直播,變成了可以進行互動的平臺。

用戶在平臺發消息進行互動,這個互動場景和聊天室類似,就是用戶加入聊天室,可收到別人的消息,同時也可發送消息,用戶下線時消息不再進行推送,這個場景實際上可以滿足簡單的直播互動。

相較其他 IM 來講,沒有離線消息存儲,也沒有離線消息 Push,在業務形態來講,聊天室比較簡單一些。

如下是直播互動平臺的主要特性:

  • 直播互動平臺的用戶量實際是無上限的,因為不可能去限制一個主播加入觀眾的成員數量。
  • 通過把消息進行分級控制的方式來保證禮物、紅包等消息傳輸的可靠性。
  • 瞬時消息吞吐量大,融云某個聊天室曾經一秒鐘產生過近千萬的消息。
  • 針對伸縮及穩定性方面的高要求。

消息平臺的邏輯設計及設計原理

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

 

如上圖,我用一張時序圖針對這個問題進行了解答。A 客戶端是發消息方,服務端是融云整個后端平臺,B 客戶端是接收消息方。

首先,客戶端向服務端發送消息,服務端接收消息先進行消息驗證,消息驗證里面包含了高危詞、敏感詞的過濾,反垃圾系統對消息進行反垃圾的過濾及權限驗證。

當消息通過之后,對消息優先進行存儲,之后會給 A 客戶端返回應答,告知消息已經發送成功,這時服務端會遍歷成員分發通知。

值得注意的是,現在還沒有向客戶端發送消息實體,當接收客戶端接收消息通知時,會從自己本地存儲里面拿到當前直播間里面最新的消息版本號。

同時向服務器發起同步請求,服務器獲取客戶提交的版本號之后,會以這個版本號為起點,到最新版本號把所有消息全部拿回來返回給客戶端,客戶端收到這個消息進行消息展示以及存儲這個最新版本號。

整個通信流程,版本號獲取方式,跟常用版本控制軟件比較類似。之所以把流程變得這么復雜,在發送完通知之后再同步消息,主要原因如下:

  • 通知的推送重試可以依賴 TCP 的重試,無須邏輯保障。
  • 服務器端存儲的消息順序與到達的客戶端順序一致。
  • 當消息密集時可以將多條消息進行合并。
  • 可以控制下發的消息條數。
  • 以存儲分級實現消息分級。
  • 不以消息數量衡量服務器規模,以在線用戶數量做為考量。

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

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

數據預處理

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

消息分級存儲

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

Skiplist 轉化為環形隊列存儲

每條消息有唯一且遞增版本號,消息按照版本號順序存儲。這樣的數據在內存存儲情況下,跳表是一種非常合適的數據結構。

但是,跳表時間復雜度和空間復雜度比較大,同時往跳表中插入數據時使用的鎖范圍非常大,會對服務器產生一些額外的開銷。之后,由跳表演進成一種類似環形隊列的數據結構,會對服務器性能開銷提升很多。

Map 與隊列構建復合數據結構,降低無意義消費

服務端下發通知,對于通知來講在這一時刻無論有多少條消息,每個用戶只有一條通知,通過 Map 與隊列構建這樣的復合結構進行存儲。

隊列里面存儲是數據的指針,Map 存儲用于下發的通知實體,Map 使用的 key 為用戶標識,這樣可以降低無意義的消費。

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

直播互動平臺的 2.1 架構

 

如上圖,是融云線上 2.1 架構圖,可分為連接層、業務層和存儲層等,連接層和業務層構建成整個大的集群,然后進行服務。

連接層主要是負責客戶端與服務器保持長連接,同時將客戶端的協議與內部服務的協議進行相互轉化。

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

  • 上行控制服務。主要目的是用于處理接收的上行客戶端的消息,進行敏感詞和高危詞的過濾。這個服務的負載方式采用的是隨機分配。
  • 直播服務。負責維護直播間的成員關系和負責接收上行控制服務給它的消息,上行控制服務會先期進行消息拋棄,拋棄到直播服務可以接收的范圍之內,然后將消息下發到直播服務,直播服務再廣播到直播消息服務。
  • 直播消息服務。負責給用戶進行分發通知,是以用戶 ID 進行一致的哈希方式進行負載。每個服務節點包含部分用戶關系。

整個直播消息服務構建了一個整體成員關系,等同于直播消息服務上的一個節點。這層除分發通知外,還負責客戶端同步拉取獲取的消息。

存儲層主要職責是用來存儲各種消息,數據等,含多個數據庫。

線上 2.1 架構和之前的架構相比,降低了直播服務壓力和上行總量的控制,但面臨的問題是需要更高的網絡質量要求。

直播互動平臺的網絡優化

如下圖,是鏈路架構 1.0:

 

鏈路架構 1.0,線上進行網絡加速主要是加速海外業務。融云選購了第三方海外專線鏈路,涉及全球五個國家,覆蓋歐洲、美洲以及中東、日本等等。

實現國際鏈路優化,就近區域接入的同時,又出現專線的流量過大,成本過高,跨國消息延時等問題。

如下圖,是鏈路架構 2.0:

 

鏈路架構 2.0 采用模擬 CDN 模式進行數據分發,專線內只跑上行消息和廣播消息的方式。

融云提供的是直播互動平臺,是一個基礎的 PAAS 服務,本身并不會去做直接面對用戶的直播 APP。未來,它也會不停地向前探索,如降低專線的依賴,數據中心進行鏈路選擇等。

以上內容根據李淼老師在 WOTA2017 “高性能直播系統架構”專場的演講內容整理。

[[201062]]

負責融云后端服務平臺的設計和架構工作,2007-2013 年就職于移動飛信團隊,歷任高級技術經理,架構師,一直關注大規模高并發系統設計和研究。

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

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

2011-08-29 14:33:41

2024-05-15 08:00:00

DevOps平臺工程

2012-09-04 13:58:50

存儲海量存儲華為

2019-12-23 10:47:54

ICS安全物聯網安全物聯網

2020-08-04 10:49:26

云遷移云計算云平臺

2022-10-09 10:11:06

物聯網安全網絡攻擊

2009-01-20 10:51:55

Oracle政府行業信息化

2022-09-06 10:21:24

物聯網安全漏洞

2023-11-09 11:25:42

2009-09-24 16:56:12

2023-12-21 08:01:41

RocketMQ消息堆積

2023-09-05 14:24:14

云挑戰云計算

2021-08-04 12:28:11

數據中心能源綠色挑戰

2020-02-06 09:37:18

云計算工具技術

2022-07-13 16:54:48

邊緣計算物聯網大數據

2014-04-30 13:21:06

2011-01-05 15:15:01

數據庫

2013-01-06 16:52:59

Windows Ser

2009-11-06 13:15:56

2022-11-09 10:39:27

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美亚洲日本 | 中文字幕视频在线看5 | 国产高清精品在线 | 日本在线免费视频 | 久久免费国产 | 亚洲在线看 | 久久亚洲天堂 | www亚洲免费国内精品 | 国产精品久久久久久二区 | 在线免费中文字幕 | 超碰成人免费观看 | 久久9999久久 | 久久精品国产a三级三级三级 | 国产在线视频一区 | 九色综合网| 神马久久av | 亚洲天天 | 欧美三级网站 | 精品久久99 | 日日摸夜夜爽人人添av | 欧美一区二区三区国产精品 | 欧美激情精品久久久久久 | 国产一区亚洲二区三区 | 欧美精品在欧美一区二区 | 天天澡天天操 | 看黄在线| 国产精品永久免费 | 狠狠色综合久久婷婷 | 国产欧美精品一区二区色综合 | 久久精品一区 | 日韩日韩日韩日韩日韩日韩日韩 | av黄色在线 | 久久精品视频亚洲 | 中文字幕一区二区三区精彩视频 | 亚洲精彩视频在线观看 | 午夜精品91 | 亚洲国产电影 | 欧美黄色片 | 久久性色 | 亚洲精品一区国产精品 | 99re99|