摘要:一個(gè)熱門視頻直播間人數(shù)可能達(dá)到幾十萬甚至上百萬人,幾十萬人發(fā)消息,幾十萬人接收,流量相當(dāng)驚人,那么服務(wù)端要如何設(shè)計(jì)才能保證系統(tǒng)流暢本文作者將結(jié)合他在網(wǎng)易云信多年開發(fā)的經(jīng)驗(yàn)進(jìn)行深度分析。網(wǎng)易云信至今已申請(qǐng)了余項(xiàng)專利,遠(yuǎn)超市場同類產(chǎn)品。
一個(gè)熱門視頻直播間人數(shù)可能達(dá)到幾十萬甚至上百萬人,幾十萬人發(fā)消息,幾十萬人接收,流量相當(dāng)驚人,那么服務(wù)端要如何設(shè)計(jì)才能保證系統(tǒng)流暢?本文作者將結(jié)合他在網(wǎng)易云信多年IM開發(fā)的經(jīng)驗(yàn)進(jìn)行深度分析。
推薦閱讀高并發(fā) IM 系統(tǒng)架構(gòu)優(yōu)化實(shí)踐
IM 即時(shí)通訊:如何跳出傳統(tǒng)思維來設(shè)計(jì)聊天室架構(gòu)?
聊天室架構(gòu)應(yīng)滿足哪些條件高可用:任何一個(gè)節(jié)點(diǎn)故障都不應(yīng)該引起服務(wù)不可用;
易擴(kuò)展:具有水平擴(kuò)展的特性,對(duì)不同量級(jí)的在線用戶數(shù)都有應(yīng)變的能力;
高并發(fā)低延遲:能支持大量的用戶同時(shí)收發(fā)消息,消息從發(fā)出到送達(dá)所有在線端的延時(shí)在毫秒級(jí);
客戶端兼容性:新型的應(yīng)用都是能同時(shí)跨多種設(shè)備實(shí)現(xiàn)消息互通的,比如網(wǎng)頁端,手機(jī)端和桌面端,甚至智能電視等。
聊天室架構(gòu)如何設(shè)計(jì)客戶端層
處理各種設(shè)備的兼容問題,包括對(duì) iOS, Android, Windows, Web 等各種開發(fā)平臺(tái)的語言適配;消息通道的管理維護(hù),包括移動(dòng)設(shè)備上的弱網(wǎng)絡(luò)管理,斷線重連等;保證數(shù)據(jù)安全,所有上行下行的數(shù)據(jù)包都需要加解密處理,規(guī)避數(shù)據(jù)泄露或中間人攻擊等各種安全風(fēng)險(xiǎn)。
網(wǎng)關(guān)接入層
管理大量客戶端連接,單個(gè)節(jié)點(diǎn)可以維護(hù)的客戶端數(shù)量在數(shù)十萬量級(jí);處理不同類型客戶端的協(xié)議兼容,由于客戶端實(shí)現(xiàn)技術(shù)的多樣性,導(dǎo)致客戶端與網(wǎng)關(guān)之間底層的數(shù)據(jù)通信協(xié)議存在差異,需要由不同的接入網(wǎng)關(guān)做協(xié)議轉(zhuǎn)換;處理數(shù)據(jù)安全邏輯;跨網(wǎng)絡(luò)的高可用邏輯,網(wǎng)絡(luò)級(jí)別的主備(誰知道哪天網(wǎng)線會(huì)被藍(lán)翔的畢業(yè)生挖斷呢?);廣播消息的高效下行分發(fā),將收到的廣播消息分發(fā)到所有連接在本節(jié)點(diǎn)上的客戶端。
路由層
作為業(yè)務(wù)層接入的中轉(zhuǎn),同時(shí)承擔(dān)負(fù)載均衡和高可用的作用,單個(gè)業(yè)務(wù)節(jié)點(diǎn)處理能力達(dá)到瓶頸時(shí)更方便的擴(kuò)容,路由層使業(yè)務(wù)層擴(kuò)容對(duì)前置網(wǎng)關(guān)層完全透明;當(dāng)一個(gè)網(wǎng)絡(luò)的業(yè)務(wù)集群出現(xiàn)網(wǎng)絡(luò)故障時(shí),可以切換到備用網(wǎng)絡(luò),保證服務(wù)可用性。
業(yè)務(wù)層
處理聊天室內(nèi)的業(yè)務(wù)消息,一個(gè)集群內(nèi)有眾多節(jié)點(diǎn),節(jié)點(diǎn)角色相互對(duì)等,任何一個(gè)節(jié)點(diǎn)的故障會(huì)使整個(gè)集群的處理能力下降,但不會(huì)引起服務(wù)的中斷,因?yàn)槠渌?jié)點(diǎn)可以繼續(xù)接管業(yè)務(wù)數(shù)據(jù)包的處理;業(yè)務(wù)集群同樣有多個(gè)網(wǎng)絡(luò)環(huán)境的熱備,以應(yīng)對(duì)可能出現(xiàn)的區(qū)域性網(wǎng)絡(luò)故障。
難點(diǎn)在哪里客戶端多樣性
目前的應(yīng)用都存在跨平臺(tái)的需求,iOS、安卓和 PC 端,網(wǎng)頁端,甚至 IoT 物聯(lián)網(wǎng)設(shè)備,能連多少是多少,多多益善;但是不同開發(fā)平臺(tái)之間的技術(shù)差異性極大,不是所有公司都有這么全的全棧程序猿的;如果團(tuán)隊(duì)開發(fā)的話單就客戶端開發(fā)人員就不是幾個(gè)人可以完成的。
數(shù)據(jù)安全的保證
當(dāng)前的網(wǎng)絡(luò)安全形勢異常復(fù)雜,開發(fā)應(yīng)用時(shí)如果不在通信安全上花心思,那你的用戶就是在互聯(lián)網(wǎng)上裸奔;開發(fā)者需要針對(duì)不同的平臺(tái),不同的通信技術(shù)實(shí)現(xiàn)可靠的安全方案,避免用戶數(shù)據(jù)在傳輸過程中泄露,避免中間人攻擊等安全風(fēng)險(xiǎn)。
跨機(jī)房網(wǎng)絡(luò)級(jí)的高可用方案
當(dāng)機(jī)房網(wǎng)絡(luò)出現(xiàn)故障時(shí)把責(zé)任推給市政施工隊(duì)或者“網(wǎng)絡(luò)抽風(fēng)”已經(jīng)不流行了,用戶需要的是故障無感知。
所有環(huán)節(jié)的單點(diǎn)故障排除
任何硬件和軟件都存在故障的可能,我們無法避免應(yīng)用罷工,那就需要隨時(shí)準(zhǔn)備替補(bǔ)上場。
能應(yīng)對(duì)任何用戶量級(jí)的需求
架構(gòu)級(jí)做到水平擴(kuò)展的能力,當(dāng)用戶量增長時(shí)隨時(shí)可以通過堆服務(wù)器來解決,而不是將架構(gòu)推倒重來。
看完文章還是不知道怎么做?那么可以嘗試借用目前已有的平臺(tái)或工具,現(xiàn)在應(yīng)用需要關(guān)注的是怎么以最快的速度抓住用戶。網(wǎng)易云信是一個(gè)面對(duì)開發(fā)者的很好的 IM 云平臺(tái)。十余年的研發(fā)積累,使其在即時(shí)通訊技術(shù)方面處于全國領(lǐng)先水平。網(wǎng)易云信至今已申請(qǐng)了 60 余項(xiàng) IM 專利,遠(yuǎn)超市場同類產(chǎn)品。歡迎大家與我們討論 IM 技術(shù),也歡迎大家多多關(guān)注網(wǎng)易云信。
隨著即時(shí)通訊以及音頻處理和壓縮技術(shù)的不斷發(fā)展,效果更好、適用范圍更廣、性能更高的算法和新的技術(shù)必將不斷涌現(xiàn),如果你有好的技術(shù)或者分享,歡迎關(guān)注網(wǎng)易云信官方博客和 GitHub:
關(guān)注更多技術(shù)干貨內(nèi)容:網(wǎng)易云信博客
歡迎關(guān)注網(wǎng)易云信 GitHub
歡迎關(guān)注網(wǎng)易云信官網(wǎng)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/71497.html
摘要:背景當(dāng)下視頻直播如此紅火,打造一個(gè)在線直播間涉及到哪些技術(shù)呢視頻直播由主播的直播端以及觀眾的觀看端組成。保持心跳斷開重連快速搭建在線直播間按前文所述,搭建直播間有非常多的細(xì)節(jié)需要考慮,包括采集推流分發(fā)播放體驗(yàn)優(yōu)化聊天室性能調(diào)優(yōu)等。 背景 當(dāng)下視頻直播如此紅火,打造一個(gè)在線直播間涉及到哪些技術(shù)呢? 視頻直播由主播的直播端以及觀眾的觀看端組成。一個(gè)簡單的觀看端最起碼應(yīng)包含播放器以及聊天室。...
摘要:實(shí)時(shí)互動(dòng)直播延時(shí)必須低達(dá)幾百毫秒。實(shí)時(shí)互動(dòng)直播要保證高可用性,有巨大的難度,原因如下實(shí)時(shí)很難。單服務(wù)器實(shí)時(shí)互動(dòng)直播架構(gòu)實(shí)時(shí)互動(dòng)直播,不能使用方案,因?yàn)榉桨感再|(zhì)決定了延時(shí)達(dá)不到實(shí)時(shí)的要求。 現(xiàn)在比較流行的直播,經(jīng)常會(huì)出現(xiàn)這樣的情況: 用戶打了一個(gè)彈幕上去,主播念出來的時(shí)候,彈幕已經(jīng)飛出去了。二者時(shí)間是不匹配的。 這是我們的一個(gè)客戶,兩個(gè)主播連線互動(dòng),實(shí)時(shí)交互。試想,如果直播時(shí)延時(shí)高達(dá)幾秒...
摘要:本篇文章將會(huì)結(jié)合網(wǎng)易云信的實(shí)踐經(jīng)驗(yàn),以全局概述的方式帶大家認(rèn)識(shí)點(diǎn)播私有化平臺(tái)構(gòu)建的整體架構(gòu)面貌。基于構(gòu)建點(diǎn)播私有云平臺(tái)在具有以上優(yōu)勢的同時(shí),還具備資源彈性管理監(jiān)控完善部署簡易自動(dòng)化維護(hù)等特性?;跇?gòu)建平臺(tái),能夠自由管理創(chuàng)建云主機(jī)。 私有云是為一個(gè)客戶單獨(dú)使用而構(gòu)建的,因而提供對(duì)數(shù)據(jù)、安全性和服務(wù)質(zhì)量的最有效控制。前置條件是客戶擁有基礎(chǔ)設(shè)施,并可以使用基礎(chǔ)設(shè)施在其上部署應(yīng)用程序。其核心屬...
摘要:本篇文章將會(huì)結(jié)合網(wǎng)易云信的實(shí)踐經(jīng)驗(yàn),以全局概述的方式帶大家認(rèn)識(shí)點(diǎn)播私有化平臺(tái)構(gòu)建的整體架構(gòu)面貌。基于構(gòu)建點(diǎn)播私有云平臺(tái)在具有以上優(yōu)勢的同時(shí),還具備資源彈性管理監(jiān)控完善部署簡易自動(dòng)化維護(hù)等特性。基于構(gòu)建平臺(tái),能夠自由管理創(chuàng)建云主機(jī)。 私有云是為一個(gè)客戶單獨(dú)使用而構(gòu)建的,因而提供對(duì)數(shù)據(jù)、安全性和服務(wù)質(zhì)量的最有效控制。前置條件是客戶擁有基礎(chǔ)設(shè)施,并可以使用基礎(chǔ)設(shè)施在其上部署應(yīng)用程序。其核心屬...
閱讀 739·2023-04-26 02:08
閱讀 2778·2021-11-18 10:02
閱讀 3544·2021-11-11 16:55
閱讀 2410·2021-08-17 10:13
閱讀 2964·2019-08-30 15:53
閱讀 738·2019-08-30 15:44
閱讀 2619·2019-08-30 11:10
閱讀 1819·2019-08-29 16:57