一個熱門視頻直播間人數可能達到幾十萬甚至上百萬人,幾十萬人發(fā)消息,幾十萬人接收,流量相當驚人,那么服務端要如何設計才能保證系統(tǒng)流暢?
聊天室架構應滿足哪些條件
●?高可用:任何一個節(jié)點故障都不應該引起服務不可用;
●?易擴展:具有水平擴展的特性,對不同量級的在線用戶數都有應變的能力;
●?高并發(fā)低延遲:能支持大量的用戶同時收發(fā)消息,消息從發(fā)出到送達所有在線端的延時在毫秒級;
●?客戶端兼容性:新型的應用都是能同時跨多種設備實現消息互通的,比如網頁端,手機端和桌面端,甚至智能電視等。
聊天室架構如何設計
客戶端層
處理各種設備的兼容問題,包括對ios,Android,Windows, Web等各種開發(fā)平臺的語言適配;消息通道的管理維護,包括移動設備上的弱網絡管理,斷線重連等;保證數據安全,所有上行下行的數據包都需要加解密處理,規(guī)避數據泄露或中間人攻擊等各種安全風險。
網關接入層
管理大量客戶端連接,單個節(jié)點可以維護的客戶端數量在數十萬量級;處理不同類型客戶端的協(xié)議兼容,由于客戶端實現技術的多樣性,導致客戶端與網關之間底層的數據通信協(xié)議存在差異,需要由不同的接入網關做協(xié)議轉換;處理數據安全邏輯;跨網絡的高可用邏輯,網絡級別的主備(誰知道哪天網線會被藍翔的畢業(yè)生挖斷呢?);廣播消息的高效下行分發(fā),將收到的廣播消息分發(fā)到所有連接在本節(jié)點上的客戶端。
路由層
作為業(yè)務層接入的中轉,同時承擔負載均衡和高可用的作用,單個業(yè)務節(jié)點處理能力達到瓶頸時更方便的擴容,路由層使業(yè)務層擴容對前置網關層完全透明;當一個網絡的業(yè)務集群出現網絡故障時,可以切換到備用網絡,保證服務可用性。
業(yè)務層
處理聊天室內的業(yè)務消息,一個集群內有眾多節(jié)點,節(jié)點角色相互對等,任何一個節(jié)點的故障會使整個集群的處理能力下降,但不會引起服務的中斷,因為其他節(jié)點可以繼續(xù)接管業(yè)務數據包的處理;業(yè)務集群同樣有多個網絡環(huán)境的熱備,以應對可能出現的區(qū)域性網絡故障。
難點在哪里
1.?客戶端多樣性。目前的應用都存在跨平臺的需求,iOS、安卓和PC端,網頁端,甚至IOT物聯(lián)網設備,能連多少是多少,多多益善;但是不同開發(fā)平臺之間的技術差異性極大,不是所有公司都有這么全的全棧程序猿的;如果團隊開發(fā)的話單就客戶端開發(fā)人員就不是幾個人可以完成的。
2.?數據安全的保證。當前的網絡安全形勢異常復雜,開發(fā)應用時如果不在通信安全上花心思,那你的用戶就是在互聯(lián)網上裸奔;開發(fā)者需要針對不同的平臺,不同的通信技術實現可靠的安全方案,避免用戶數據在傳輸過程中泄露,避免中間人攻擊等安全風險。
3.?跨機房網絡級的高可用方案。當機房網絡出現故障時把責任推給市政施工隊或者“網絡抽風”已經不流行了,用戶需要的是故障無感知。
4.?所有環(huán)節(jié)的單點故障排除。任何硬件和軟件都存在故障的可能,我們無法避免應用罷工,那就需要隨時準備替補上場。
5.?能應對任何用戶量級的需求。架構級做到水平擴展的能力,當用戶量增長時隨時可以通過堆服務器來解決,而不是將架構推倒重來。
要想滿足以上的需求在租用服務器的時候要考慮專業(yè)的機房,USA-IDC的提供香港聊天直播服務器解決方案,提供G口大帶寬,高配硬件,穩(wěn)定性好,支持CN2直連網絡,聯(lián)系24小時在線技術支持,現在聯(lián)系客服可提供免費測試服務和專屬折扣,歡迎點擊下方在線咨詢按鈕了解更多
香港大帶寬主機推薦