積極落實響應國家公安部、國家文化部、國家互聯網信息辦公室、國家新聞出版廣電總局對直播行業的管理要求,即日起,美拍對平臺上的直播準入資格和直播審核提出更嚴格要求,并已啟動直播內容的全面回查審核,建立更完善的違規信息舉報處置機制。
據《法制晚報》此前報道,美拍直播平臺被指有小學生等未成年人脫衣、露體直播。有名小學生稱,裸體直播不為錢,就是為“好玩”。
美拍事件發生后,有網友表示該封停這類軟件,還有網友認為美拍平臺缺乏嚴格監管。
播彈幕指直播間的用戶,禮物,評論,點贊等消息,是直播間交互的重要手段。美拍直播彈幕系統從 2015 年 11 月到現在,經過了三個階段的演進,目前能支撐百萬用戶同時在線。比較好地詮釋了根據項目的發展階段,進行平衡演進的過程。這三個階段分別是快速上線,高可用保障體系建設,長連接演進。
美拍直播彈幕系統在設計初期的核心要求是: 快速上線,并能支撐百萬用戶同時在線。 基于這兩點,我們策略是前中期 HTTP 輪詢方案,中后期替換為長連接方案。因此在業務團隊進行 HTTP 方案研發的同時,基礎研發團隊也緊鑼密鼓地開發長連接系統。
直播間消息,相對于 IM 的場景,有其幾個特點
對于用戶來說,在直播間有三個典型的操作:
我們把禮物,評論,用戶的數據都當做消息來看待。經過考慮選擇了 Redis 的 sortedset 存儲消息,消息模型如下:
因此總的流程是
不過這里有一個隱藏的并發問題:用戶可能丟消息。
如上圖所示,某個用戶從第6號評論開始拉取,同時有兩個用戶在發表評論,分別是10,11號評論。如果11號評論先寫入,用戶剛好把6,7,8,9,11號拉走,用戶下次再拉取消息,就從12號開始拉取,結果是:用戶沒有看到10號消息。
為了解決這個問題,我們加上了兩個機制:
消息模型及并發問題解決后,開發就比較順暢,系統很快就上線,達到預先預定目標。
上線后,隨著量的逐漸增加,系統陸續暴露出三個比較嚴重的問題,我們一一進行解決
問題一:消息串行寫入 Redis,如果某個直播間消息量很大,那么消息會堆積在 Kafka 中,消息延遲較大。
解決辦法:
問題二:用戶輪詢最新消息,需要進行 Redis 的 ZrangByScore 操作,redis slave 的性能瓶頸較大
解決辦法:
解釋:這里本地緩存與平常使用的本地緩存問題,有一個最大區別:成本問題。
如果所有直播間的消息都進行緩存,假設同時有1000個直播間,每個直播間5種消息類型,本地緩存每隔1秒拉取一次數據,40臺前端機,那么對 Redis 的訪問QPS是 1000 * 5 * 40=20萬。成本太高,因此我們只有大直播間才自動開啟本地緩存,小直播間不開啟。
問題三:彈幕數據也支持回放,直播結束后,這些數據存放于 Redis 中,在回放時,會與直播的數據競爭 Redis 的 cpu 資源。
解決辦法:
解釋:回放時,讀取數據順序是: local cache -> Redis -> mysql。localcache 與回放 Redis 都可以只存某個直播某種消息類型的部分數據,有效控制容量;local cache與回放 Redis 使用SortedSet數據結構,這樣整個系統的數據結構都保持一致。
分為主機房和從機房,寫入都在主機房,讀取則由兩個機房分擔。從而有效保證單機房故障時,能快速恢復。
高可用保障建設完成后,迎來了 TFBOYS 在美拍的四場直播,這四場直播峰值同時在線人數達到近百萬,共 2860萬人次觀看,2980萬評論,26.23億次點贊,直播期間,系統穩定運行,成功抗住壓力。
詳細說明:
我們采用了訂閱推送模型,下圖為基本的介紹
舉例說明:用戶1訂閱了A直播,A直播有新的消息
如果是大直播間(訂閱用戶多),那么推送層與連接層的告知/拉取模型,就會自動降級為廣播模型。如下圖所示
我們經歷客戶端三個版本的迭代,實現了兩端(Android 與 iOS)長連接對短連接的替換,因為有灰度和黑白名單的支持,替換非常平穩,用戶無感知。
回顧了系統的發展過程,達到了原定的前中期使用輪詢,中后期使用長連接的預定目標,實踐了原定的平衡演進的原則。從發展來看,未來計劃要做的事情有
圖公司針對旗下的直播、短影音 APP 美拍舉辦三周年生日慶祝會,除了分享美拍底下直播主成功秘訣,和短影音與電商整合的概念與愿景之外,也同步發表了深化販售功能的「邊看邊買」功能,讓觀眾在看直播時不用問,點擊聯結就能在 APP 買東西!
邊看邊買可在美拍內的短影音或直播影片中,可在影片中嵌入商品聯結標簽、或是在購物車內顯示商品聯結,按下后就能直接導向不同網購平臺,并可在 APP「里面」進行購買動作,不需另外導流到不同網站。
▼邊看邊買功能可讓美拍在影片中直接嵌入商品標簽、聯結外,目前也能透過微信支付的方式購買。
▼和一般 APP 點聯結可能會導入其他網站,美拍可直接在 APP 中瀏覽或購買商品。
▼在邊看邊買之前,在美拍 APP 上想要賣東西,不是要回答觀眾私訊,或是要自己手動舉牌,實在很累。
整體來看,美拍目前已經脫離露奶等腥膻色內容,且以短影音搭配電商與置入性內容的策略方針下,目前看起來還算成功,相信推出了「邊看邊買」功能,對于目前常在臉書搞拍賣、競標的商家來說,也是一個好選擇吧?
至于商家比較關系的手續費問題,美圖公司 CEO 吳欣鴻也表示,目前「邊看邊買」算是一個公測狀態,先以扶持商家與直播主的角度出發,未來業務比較穩定的話,才會考慮是否酌收手續費或是收入分潤等事宜,大家可以先松口氣啦!