亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

邏輯層廣播到網管層會不會太浪費資源了呢

上一節課,不是說可以維護,用戶連接,房間一個映射關系嗎,通過這個映射關系推送到指定的網管層,與直接廣播到所有的網管節點有啥利弊呢

正在回答

3 回答

前置前置再前置,把合并越推向原點,對系統整體優化效果更佳,掌握這一點即可!

0 回復 有任何疑惑可以回復我~

字數限制。


實際上內部通訊也需要合并推送,這個出于簡化原因我沒有實現在開源代碼里。 所有的無狀態logic應該按room推送消息到消息隊列(按room分區),然后通過pusher服務去完成房間粒度的消息合并,并廣播給gateway。


思考架構問題需要考慮場景,切忌空談性能,在具體場景下有具體的難點和具體的應對方案,這個思想很重要。


1 回復 有任何疑惑可以回復我~

嗯,這個問題很有意思,引申出了這個分布式系統后續的一些走向,我簡單延伸一下。


  1. 如果是定向給某個用戶推送,我們一般會在邏輯服務器后面設計一層session服務,記錄用戶在哪些gateway上,從而減少不必要的廣播。

  2. 如果是定向給某個房間推送,需要我們主動的連接調度,用戶進入房間前先詢問服務端,由服務端指派網關節點地址,這樣盡量來把同一個房間的用戶聚集在一起,你可以想一下增加這個特性的性價比有多少。


我覺得在彈幕場景里,內部節點之間的廣播消息量并不是瓶頸(特指內網帶寬瓶頸),因為100萬人*10個網關在線,你推送1條彈幕的瓶頸永遠在網關層。

所以,在考慮生產環境的擴展性架構決策時,gateway+logic應該作為一個服務單元(我們也稱為set),通過部署多套set來實現大規模集群部署,具體一個房間只需要調度到某個set即可保障其高可用和高吞吐。

1 回復 有任何疑惑可以回復我~
#1

i歲月無聲 提問者

對于一個直播平臺除了幾個大房間之外還有其他的房間,有任何一個消息,都廣播到所有網關層,這個壓力不會成為系統瓶頸嗎?
2018-08-01 回復 有任何疑惑可以回復我~
#2

小魚兒老師 回復 i歲月無聲 提問者

嗯,彈幕系統是讀比寫要多多多多多多多的場景,大主播的彈幕頻率你完全可以以1萬/秒來計算,對每個gateway的廣播壓力就是1萬/秒,gateway來說是毛毛雨,對logic來說也是毛毛雨。 在這個量級下,對外推送的帶寬就很大了,要乘上在線用戶數(比如100萬),那就是1000萬/秒的推送系統啦。 上述是一個set內的情況,你能無限的部署set,那么擴展性就永遠不是問題,大不了一個主播一個set,只要公司有錢買服務器和帶寬。
2018-08-01 回復 有任何疑惑可以回復我~
#3

精慕門4429612

哈哈哈哈哈
2018-08-03 回復 有任何疑惑可以回復我~
#4

精慕門4429612 回復 精慕門4429612

哈哈哈哈哈
2018-08-03 回復 有任何疑惑可以回復我~
#5

i歲月無聲 提問者 回復 小魚兒老師

還有一個問題,類似直播間內用戶發彈幕,可以使用長連接發送上行消息,有的使用http接口發送彈幕消息到服務器在轉發到IM服務器,實際場景中,這兩種方式有什么優劣呢
2018-08-08 回復 有任何疑惑可以回復我~
查看2條回復

舉報

0/150
提交
取消

邏輯層廣播到網管層會不會太浪費資源了呢

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號