精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

支撐百萬用戶同時在線的高并發直播彈幕系統是如何煉成的?

開發 架構
直播彈幕是直播系統的核心功能之一。如何迅速作出一個有很好擴展性的彈幕系統?如何應對業務迅速發展?相信很多工程師/架構師都有自己的想法。

直播彈幕是直播系統的核心功能之一。如何迅速作出一個有很好擴展性的彈幕系統?如何應對業務迅速發展?相信很多工程師/架構師都有自己的想法。

本文作者美拍架構師王靜波經歷了直播彈幕系統從無到有,從小到大的過程并對構建彈幕系統的經驗進行了總結。

[[209346]]

直播彈幕指直播間的用戶,禮物,評論,點贊等消息,是直播間交互的重要手段。

美拍直播彈幕系統從 2015 年 11 月到現在,經過了三個階段的演進,目前能支撐百萬用戶同時在線。

本文比較好地詮釋了根據項目的發展階段,直播彈幕系統進行平衡演進的過程。這三個階段分別是快速上線,高可用保障體系建設,長連接演進。

快速上線

消息模型

美拍直播彈幕系統在設計初期的核心要求是:快速上線,并能支撐百萬用戶同時在線。

基于這兩點,我們的策略是前中期使用 HTTP 輪詢方案,中后期替換為長連接方案。

因此在業務團隊進行 HTTP 方案研發的同時,基礎研發團隊也緊鑼密鼓地開發長連接系統。

直播間消息,相對于 IM 的場景,有如下幾個特點:

  • 消息要求及時,過時的消息對于用戶來說不重要。
  • 松散的群聊,用戶隨時進群,隨時退群。
  • 用戶進群后,離線期間(接聽電話)的消息不需要重發。

對于用戶來說,在直播間有三個典型的操作:

  • 進入直播間,拉取正在觀看直播的用戶列表。
  • 接收直播間持續發布的彈幕消息。
  • 自己發消息。

我們把禮物,評論,用戶的數據都當做消息來看待。

經過考慮選擇了 Redis 的 sortedset 存儲消息,消息模型如下:

  • 用戶發消息,通過 Zadd,其中 score 消息的相對時間。
  • 接收直播間的消息,通過 ZrangeByScore 操作,兩秒一次輪詢。
  • 進入直播間,獲取用戶的列表,通過 Zrange 操作來完成。

因此總的流程是:

  • 寫消息流程是:  前端機 -> Kafka -> 處理機 -> Redis。
  • 讀消息流程是:  前端 -> Redis。

不過這里有一個隱藏的并發問題:用戶可能丟消息。

如上圖所示,某個用戶從第 6 號評論開始拉取,同時有兩個用戶在發表評論,分別是 10,11 號評論。

如果 11 號評論先寫入,用戶剛好把 6,7,8,9,11 號拉走,用戶下次再拉取消息,就從 12 號開始拉取,結果是:用戶沒有看到 10 號消息。

為了解決這個問題,我們加上了兩個機制:

  • 在前端機,同一個直播間的同一種消息類型,寫入 Kafka 的同一個 partition。
  • 在處理機,同一個直播間的同一種消息類型,通過 synchronized 保證寫入 Redis 的串行。

消息模型及并發問題解決后,開發就比較順暢,系統很快就實現上線,達到了預先設定的目標。

上線后暴露問題的解決

上線后,隨著消息量的逐漸增加,系統陸續暴露出三個比較嚴重的問題,我們一一進行了解決。

問題一:消息串行寫入 Redis,如果某個直播間消息量很大,那么消息會堆積在 Kafka 中,消息延遲較大。

解決辦法:

  • 消息寫入流程:前端機-> Kafka -> 處理機 -> Redis。
  • 前端機:如果延遲小,則只寫入一個 Kafka 的 partion;如果延遲大,則這個直播的這種消息類型寫入 Kafka 的多個 partion。
  • 處理機:如果延遲小,加鎖串行寫入 Redis;如果延遲大,則取消鎖。

因此有四種組合,四個檔位,分別是:

  • 一個 partion,加鎖串行寫入 Redis, ***并發度:1。
  • 多個 partition,加鎖串行寫入 Redis,***并發度:Kafka partion的個數。
  • 一個 partion,不加鎖并行寫入 Redis,***并發度:處理機的線程池個數。
  • 多個 partion,不加鎖并行寫入 Redis,***并發度: Kafka partition 個數處理機線程池的個數。
  • 延遲程度判斷:前端機寫入消息時,打上消息的統一時間戳,處理機拿到后,延遲時間 = 現在時間 - 時間戳。
  • 檔位選擇:自動選擇檔位,粒度:某個直播間的某個消息類型。

問題二:用戶輪詢***消息,需要進行 Redis 的 ZrangByScore 操作,redis slave 的性能瓶頸較大。

解決辦法:

  • 本地緩存,前端機每隔 1 秒左右拉取一次直播間的消息,用戶到前端機輪詢數據時,從本地緩存讀取數據。
  • 消息的返回條數根據直播間的大小自動調整,小直播間返回允許時間跨度大一些的消息,大直播間則對時間跨度以及消息條數做更嚴格的限制。

解釋:這里本地緩存與平常使用的本地緩存,有一個***區別,就是考慮了成本問題。

如果所有直播間的消息都進行緩存,假設同時有 1000 個直播間,每個直播間 5 種消息類型,本地緩存每隔 1 秒拉取一次數據,40 臺前端機,那么對 Redis 的訪問 QPS 是 1000 * 5 * 40 = 20 萬。

成本太高,因此我們只有大直播間才自動開啟本地緩存,小直播間不開啟。

問題三:彈幕數據也支持回放,直播結束后,這些數據存放于 Redis 中,在回放時,會與直播的數據競爭 Redis 的 CPU 資源。

解決辦法:

  • 直播結束后,數據備份到 MySQL。
  • 增加一組回放的 Redis。
  • 前端機增加回放的 local cache。

解釋:回放時,讀取數據順序是: local cache -> Redis -> mysql。localcache 與回放 Redis 都可以只存某個直播某種消息類型的部分數據,有效控制容量;local cache與回放 Redis 使用 sortedset 數據結構,這樣整個系統的數據結構都保持一致。

高可用保障

同城雙機房部署

雙機房分為主機房和從機房,寫入都在主機房,讀取則由兩個從機房分擔。從而有效保證單機房故障時,能快速恢復。

豐富的降級手段

全鏈路的業務監控

高可用保障建設完成后,迎來了 TFBOYS 在美拍的四場直播,這四場直播峰值同時在線人數達到近百萬,共 2860 萬人次觀看,2980 萬評論,26.23 億次點贊,直播期間,系統穩定運行,成功抗住壓力。

使用長連接替換短連接輪詢方案

長連接整體架構圖

詳細說明:

  • 客戶端在使用長連接前,會調用路由服務,獲取連接層IP,路由層特性:a.可以按照百分比灰度;b.可以對 uid,deviceId,版本進行黑白名單設置。黑名單:不允許使用長連接;白名單:即使長連接關閉或者不在灰度范圍內,也允許使用長連接。這兩個特性保證了我們長短連接切換的順利進行。
  • 客戶端的特性:a.同時支持長連接和短連接,可根據路由服務的配置來決定;b.自動降級,如果長連接同時三次連接不上,自動降級為短連接;c.自動上報長連接性能數據。
  • 連接層只負責與客戶端保持長連接,沒有任何推送的業務邏輯。從而大大減少了重啟的次數,從而保持用戶連接的穩定。
  • 推送層存儲用戶與直播間的訂閱關系,負責具體推送。整個連接層與推送層與直播間業務無關,不需要感知到業務的變化。
  • 長連接業務模塊用于用戶進入直播間的驗證工作。
  • 服務端之間的通訊使用基礎研發團隊研發的 tardis 框架來進行服務的調用,該框架基于 gRPC,使用 etcd 做服務發現。

長連接消息模型

我們采用了訂閱推送模型,下圖為基本的介紹:

舉例說明,用戶 1 訂閱了 A 直播,A 直播有新的消息:

  • 推送層查詢訂閱關系后,知道有用戶 1 訂閱了 A 直播,同時知道用戶 1 在連接層 1 這個節點上,那么就會告知連接層有新的消息。
  • 連接層 1 收到告知消息后,會等待一小段時間(毫秒級),再拉取一次用戶 1 的消息,然后推送給用戶 1。

如果是大直播間(訂閱用戶多),那么推送層與連接層的告知/拉取模型,就會自動降級為廣播模型。如下圖所示:

我們經歷了客戶端三個版本的迭代,實現了兩端(Android 與 iOS)長連接對短連接的替換,因為有灰度和黑白名單的支持,替換非常平穩,用戶無感知。

總結與展望

回顧了系統的發展過程,達到了原定的前中期使用輪詢,中后期使用長連接的預定目標,實踐了原定的平衡演進的原則。

從發展來看,未來計劃要做的事情有:

  • 針對機房在北京,南方某些地區會存在連接時間長的情況。我們如何讓長連接更靠近用戶。
  • 消息模型的進一步演進。

[[209349]]

王靜波,畢業于西安交通大學,曾任職于網易和新浪微博,微博工作期間負責開放平臺業務和技術體系建設。2015 年 9 月加入美圖,就職于架構平臺部,目前負責部分核心業務和基礎設施的研發工作,包括彈幕服務、Feed 服務、任務調度和質量監控體系等。十余年的后端研發經歷,擁有豐富的后端研發經驗,對于構建高可用、高并發的系統有較多實踐經驗。歡迎通過 wjb@meitu.com 跟他交流。

責任編輯:武曉燕 來源: 高可用架構
相關推薦

2025-09-24 07:58:02

2022-08-19 06:42:11

數據庫高并系統

2020-03-17 09:51:21

在線流量崩了

2009-03-04 14:29:32

RTX2008

2025-04-28 07:46:03

2025-02-03 00:00:20

2021-06-29 10:21:22

騰訊云騰訊會議TRTC

2011-08-23 17:12:22

MySQL支撐百萬級流

2019-01-24 09:42:55

系統高并發面試

2019-02-27 09:46:05

數據庫架構并發

2019-04-16 09:40:12

服務器系統數據庫

2023-01-18 17:50:35

系統架構Kafka

2022-09-13 18:03:35

架構系統通信

2025-11-14 00:25:00

微服務架構并發

2019-12-03 10:46:07

PHP高并發架構

2019-09-23 08:46:04

零拷貝 CPU內存

2025-06-05 09:50:50

2013-10-04 11:39:46

2013-10-03 16:55:31

2019-04-04 09:59:06

服務器系統Web
點贊
收藏

51CTO技術棧公眾號

国产又粗又猛又爽又黄视频| 欧美做受xxxxxⅹ性视频| av网站大全在线| 懂色av一区二区在线播放| 国语自产在线不卡| 久久国产精品无码一级毛片| 成人h在线观看| 一区二区久久久久久| 欧美日韩一区在线播放| 国产视频一二三四区| 国产精品日本欧美一区二区三区| 色偷偷9999www| 国产女人18毛片水真多18| 九色成人搞黄网站| 亚洲成在人线免费| 小说区图片区图片区另类灬| 日本黄视频在线观看| 麻豆国产精品视频| 91精品国产91久久久久久最新 | www.av麻豆| 欧美一区二区麻豆红桃视频| 精品精品国产高清a毛片牛牛 | 亚洲免费一级电影| 亚洲视频在线不卡| 户外露出一区二区三区| 亚洲一区二区三区四区五区黄| 日本成人黄色免费看| 亚洲老妇色熟女老太| 久久99精品视频| 热re99久久精品国产66热| 免费网站观看www在线观| 色综合久久网| 亚洲欧美另类中文字幕| 亚洲成人精品在线播放| 久久精品超碰| 欧洲国内综合视频| 欧美,日韩,国产在线| 羞羞电影在线观看www| 国产精品美女久久久久久久久 | 国产一级久久久久毛片精品| 久久久免费毛片| 日韩免费高清视频| 天天干天天色天天干| 97精品国产99久久久久久免费| 欧美性猛交xxxx偷拍洗澡| 中文字幕无码精品亚洲资源网久久| 午夜小视频在线| 国产色91在线| 日韩欧美国产二区| 理论视频在线| 国产欧美日韩麻豆91| 日韩高清av| 精华区一区二区三区| 久久综合色鬼综合色| 精品国产一区二区三区四区精华 | 一级久久久久久| 久久国产欧美| 日本精品久久久久影院| 六月丁香婷婷综合| 亚洲欧美日本国产专区一区| 97免费在线视频| 在线观看黄网站| 国产一区成人| 国产精品免费久久久久久| 无码免费一区二区三区| 欧美不卡在线播放| 香蕉视频免费看| 91看片淫黄大片一级在线观看| 精品无人区一区二区三区竹菊| 韩国av免费在线| 不卡一区在线观看| 精品国产一区二区三区四区vr| 三级av在线| 久久久精品2019中文字幕之3| 日本在线观看一区二区| 69视频在线| 亚洲情趣在线观看| 麻豆tv在线播放| 欧美精品日日操| 欧美日韩欧美一区二区| 日韩欧美理论片| 国产精品极品在线观看| 亚洲精品自拍视频| a级黄色免费视频| 亚洲破处大片| 精品久久久久久久久久久aⅴ| 色香色香欲天天天影视综合网| 污污视频网站免费观看| 久久久国产精品网站| 欧美日韩亚洲综合在线| 麻豆tv在线观看| 亚洲综合福利| 久久综合电影一区| 久久国产精品系列| 在线免费高清一区二区三区| 欧洲精品在线视频| 伊人网综合在线| gogogo免费视频观看亚洲一| 精品在线视频一区二区| 9191在线| 欧美日韩亚洲精品内裤| 一级黄色特级片| 豆花视频一区二区| 中文字幕亚洲图片| 日韩av片在线播放| 蜜臀久久久久久久| 韩国精品一区二区三区六区色诱| av影片免费在线观看| 亚洲国产综合人成综合网站| 欧美激情国产精品日韩| 久久的色偷偷| 这里只有精品在线观看| 久久久久久免费观看| 蜜臀av性久久久久av蜜臀妖精| 国产一区二区三区四区hd| 日本在线播放| 日韩欧美精品中文字幕| 国产人妖在线观看| 色135综合网| 日韩免费在线免费观看| 亚洲av无码乱码国产麻豆| 中文字幕欧美日韩一区| 久久亚洲中文字幕无码| 日韩一级淫片| 在线观看国产精品日韩av| 免费毛片一区二区三区| 国产一区二区美女诱惑| 亚洲不卡1区| 男人av在线播放| 日韩精品中午字幕| 国产日产精品一区二区三区的介绍| 久久av一区| 精品一卡二卡三卡四卡日本乱码 | 一女二男3p波多野结衣| 亚洲精品中文字幕99999| 久久久亚洲精品视频| 精品人妻一区二区三区三区四区| 中文字幕av资源一区| 亚洲熟妇av一区二区三区| 日韩母乳在线| 国语自产精品视频在线看抢先版图片 | 欧美日韩高清丝袜| 99精品国产99久久久久久福利| 不卡视频一区二区| 中中文字幕av在线| 欧美丰满少妇xxxxx高潮对白 | 嫩草在线播放| 欧美日韩中国免费专区在线看| 欧产日产国产精品98| 亚洲天堂黄色| 好吊妞www.84com只有这里才有精品| 久久电影网站| 亚洲成人999| 日本熟妇色xxxxx日本免费看| 成人免费视频一区| www.av毛片| 亚洲尤物av| 国产精品成av人在线视午夜片| 国产视频第一页在线观看| 在线观看av一区| 成人无码精品1区2区3区免费看| 久久精品99国产精品日本| 日本丰满少妇黄大片在线观看| 国产视频一区二| 久久久久久久国产| 国产又爽又黄网站亚洲视频123| 欧美性少妇18aaaa视频| 亚洲自拍偷拍图| 免费高清在线一区| 99re6这里有精品热视频| 韩国女主播一区二区三区| 57pao成人永久免费视频| 欧美美女色图| 欧美日韩中文精品| 欧美日韩免费一区二区| 99麻豆久久久国产精品免费| 久久久久久久久久福利| 成人精品视频| 99久久国产免费免费| 亚洲欧美se| 日韩在线播放一区| 亚洲第一天堂网| 欧美丝袜一区二区| 久久久国产一级片| 国产1区2区3区精品美女| 国产精品333| 国产精品videosex性欧美| av一区二区三区免费| 成人自拍av| 九色91av视频| 国产高清视频在线| 日韩精品一区二区三区蜜臀 | 久久综合狠狠| 日本久久高清视频| 奇米777国产一区国产二区| 国产精品第七影院| 激情图片在线观看高清国产| 国产一区二区动漫| 午夜精品久久久久久久第一页按摩| 精品日本美女福利在线观看| 永久免费未视频| 99久久夜色精品国产网站| jizzzz日本| 亚洲永久视频| 国产 欧美 日本| 国产一区二区三区四区二区| 99re资源| 图片一区二区| 国产成人亚洲综合91| 免费影视亚洲| 久热精品在线视频| 巨骚激情综合| 亚洲国产精品福利| www.爱爱.com| 欧美精品少妇一区二区三区| 日本中文字幕在线| 亚洲永久免费视频| 男人在线观看视频| 国产视频亚洲色图| a级在线观看视频| 国产91高潮流白浆在线麻豆| 日本在线播放一区二区| 久久一区中文字幕| 久久综合色视频| 国产综合激情| 一本大道东京热无码aⅴ| 成人在线视频免费观看| 欧美日韩亚洲一区二区三区在线观看| 2020国产精品极品色在线观看| 91九色蝌蚪国产| 欧美成人福利| 国产精品尤物福利片在线观看| 欧美成人黑人| 57pao成人国产永久免费| 国产高清视频色在线www| 久久久精品影院| 麻豆tv免费在线观看| 综合av色偷偷网| shkd中文字幕久久在线观看| 国产一区二区av| av在线之家电影网站| 国产一区二区三区丝袜| lutube成人福利在线观看| 国产一区二区日韩精品欧美精品| 精品成人一区二区三区免费视频| 亚洲免费福利视频| 黄色国产在线| 在线播放国产一区中文字幕剧情欧美| 九色在线视频| 色综合影院在线| 免费a级人成a大片在线观看| 久久久精品一区二区三区| 黄色的网站在线观看| 久久久黄色av| wwww在线观看免费视频| 国内精品视频一区| 欧美gv在线| 国产成人亚洲精品| 中文成人在线| 国产66精品久久久久999小说| 91久久精品无嫩草影院| 国产日韩欧美一区二区三区四区| 久久动漫网址| 日韩精品电影网站| 99久久夜色精品国产亚洲1000部| 中文字幕欧美日韩一区二区三区| 欧美成人一品| 国产视频九色蝌蚪| 日韩精品久久理论片| 超碰人人草人人| 国产成人无遮挡在线视频| 国产精品福利导航| 国产午夜精品久久久久久久 | av午夜在线| 欧美另类极品videosbest最新版本| 51av在线| 国产精品三级网站| 一区二区三区视频免费视频观看网站| 国产在线播放一区二区| 精品国精品国产自在久国产应用| 影音欧美亚洲| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲永久av| 成人精品aaaa网站| 加勒比色老久久爱综合网| 日本一区二区精品视频| 7777久久香蕉成人影院| 日本免费不卡一区二区| 久久精品国产精品亚洲精品| av av在线| 欧美激情一区二区三区全黄| 极品美妇后花庭翘臀娇吟小说| 午夜欧美视频在线观看| 中文字幕欧美色图| 欧美精品一区二区不卡 | 欧美1区2区3区4区| 亚洲欧美精品在线观看| 亚洲高清激情| 特黄视频免费观看| 91年精品国产| 免费人成视频在线| 欧美午夜寂寞影院| 污污网站在线免费观看| 毛片精品免费在线观看| 日韩一级二级 | 成人影院在线| 波多野结衣家庭教师在线| 国产精品一色哟哟哟| www.日本高清视频| 欧美日韩亚洲一区二| 亚洲av无码乱码在线观看性色| 中文字幕国产精品| 性国裸体高清亚洲| 成人午夜电影免费在线观看| 久久理论电影| 色婷婷综合久久久久中文字幕| 成人免费高清在线| 杨钰莹一级淫片aaaaaa播放| 欧美亚洲国产怡红院影院| 水中色av综合| 久久免费福利视频| 久久精品九色| 在线免费一区| 美女视频黄a大片欧美| 久久久久久亚洲中文字幕无码| 亚洲成a人片综合在线| 国产福利视频导航| 久久精品电影一区二区| 欧美黄色网络| 亚洲欧洲日韩精品| 日韩精品每日更新| 影音先锋制服丝袜| 一本在线高清不卡dvd| 色吊丝在线永久观看最新版本| 欧美精品www| 欧美午夜在线播放| 日韩视频一二三| 国产精品中文字幕日韩精品| 国产一区二区精彩视频| 欧美日韩精品二区第二页| 成年人视频在线免费观看| 国产精品国语对白| 国产精品探花在线观看| 一本色道无码道dvd在线观看| 久久日一线二线三线suv| 香蕉影院在线观看| 亚洲午夜精品久久久久久性色| gay欧美网站| 少妇特黄a一区二区三区| 视频一区在线播放| 超碰人人干人人| 欧美日韩在线播放三区| 天堂中文8资源在线8| 91传媒视频在线观看| 欧美喷水视频| 2一3sex性hd| 色老汉av一区二区三区| 国产高清视频在线播放| 成人动漫网站在线观看| 一区二区三区在线观看免费| 国产人妻精品久久久久野外| 亚洲成人动漫av| 人成在线免费视频| 国产精品久久久久久久久久新婚 | 日韩亚洲欧美成人| 国产一区二区三区国产精品| 337p亚洲精品色噜噜狠狠p| www.av亚洲| 黄色网址中文字幕| 久久综合伊人77777尤物| 亚洲网一区二区三区| 成年人视频观看| 欧美激情一区二区| 国产高潮流白浆喷水视频| 91国产高清在线| 精品视频亚洲| 四虎1515hh.com| 欧美午夜片欧美片在线观看| av影片免费在线观看| 高清国产在线一区| 久久精品一区| 久久久久亚洲AV成人| 日韩国产精品一区| 精品三级在线| 野外做受又硬又粗又大视频√| 久久欧美一区二区| 99久久精品国产一区色| 97超级碰在线看视频免费在线看| 青青草成人影院| 性高潮免费视频| 欧美日韩在线亚洲一区蜜芽| 国精一区二区三区| 亚洲国产精品毛片| yourporn久久国产精品| 中文天堂在线视频| 欧美性资源免费| 综合视频在线| 手机av在线不卡| 亚洲精品国产精品国自产观看浪潮| 欧美aaaaaaaa|