中國網際網路信息中心第38次《中國網際網路發展狀況統計報告》的統計數據顯示,2016年6月中國即時通信用戶規模達6.42億人,網民使用率為90.4%。另一方面,文化部文化市場司行業數據監測點最新統計顯示,2016年上半年,我國網絡文化市場整體營收達1017.2億元,網絡直播市場是爆發最快的領域,同比增長209.3%。其中演藝秀場用戶達到2.5億人,遊戲直播用戶達到2億人。在網際網路+時代,消息量級的大幅上升,消息形式的多元化。給IM雲服務平臺帶來了非常大的挑戰。如何應對更大數量級的高並發消息量,並能夠真正保障IM服務的穩定和快速,成為各IM雲平臺的重中之重。
(圖片來源於網絡)
在12月2日於北京國際會議中心舉辦的ArchSummit全球架構師峰會上,網易雲信首席架構師周梁偉就針對這一話題,進行了題為《網易IM雲服務架構設計與實踐》的主題演講。其中,周梁偉先生重點分享了網易雲信在連接層的「三板斧」優化是如何在保證穩定快速的情況下實現支持千萬級高並發消息量的,引發了現場參會者和行業人士的極大關注和思考。
連接層是奠定雲信穩定性的基石
演講中,周梁偉先生反覆強調消息的到達率和及時性。他認為,對於任何一個IM應用而言,這都是一條不容有失的生命線。尤其是對於移動端IM雲服務,在無法迴避弱網環境的種種複雜問題情況下,還要考慮到聊天室等應用在高並發狀況下的嚴苛考驗。周梁偉說:「消息快速到達的前提是客戶端和伺服器之間保持了穩定的快速的連接,所以連接層可以理解為奠定雲信服務穩定性的基石。」
連接層優化之板斧一:通過邊緣節點優化網絡拓撲
據他介紹,網易雲信在其智慧雲IM架構中的連接層,進行了三大管理優化措施。第一,通過邊緣節點優化網絡拓撲。區域性網絡問題是任何一個應用或者服務都會面臨的問題,特別是對IM這類對於網絡質量特別敏感的服務。網易雲信通過部署區域性的邊緣加速節點的方式來優化網絡拓撲,譬如他們目前在海外,像美國,歐洲,中東和東南亞等很多國家和地區提供了這類邊緣加速節點,加速節點和數據中心之間再通過專線等優質網絡做互通,將整個用戶鏈路中的關鍵路徑替換成IDC之間的網絡線路,從而大幅提升連接的穩定性和速度。通過優化,客戶端到IDC中心的速度從之前的500ms以上銳減至200ms,實現提速60%。同時,消息丟失率也從之前的20%以上降低到0%。
連接層優化之板斧二:場景化的消息分發機制提升吞吐率
第二是通過場景化的消息分發機制提升吞吐率。IM點對點的消息分發模式非常依賴用戶的在線狀態。在消息分發過程中,一次在線狀態的查詢假定需要10ms,如果有100人發送消息,僅查詢在線狀態的開銷就要1秒鐘,並且這個時間開銷還會隨著消息接收人數的增加而成倍增加,再加上中間消息包的網絡分發開銷,這個消息處理的時間很快就會到達瓶頸。在聊天室場景下,這個問題就會變得尤為突出。網易雲信針對這種特殊的消息分發場景實現了一種消息分發的廣播模式。假定一個100萬人的聊天室,所有用戶分布在10個連接節點上,一條廣播消息在分發過程中只需要查詢一次在線狀態,並給每個Link分發一個廣播包,到最終用戶端的消息包由Link節點做內存拆包和下發,並且不同的節點之間可以完全並行處理。這種方式的消息分發使一個百萬量級的消息分發任務可以在秒級處理時間之內完成,對消息接收者來說也能有效控制消息到達的延時情況。
連接層優化之板斧三:集群化解決單節點性能瓶頸
第三個優化是通過集群化解決單節點性能瓶頸。周梁偉詳細介紹說,通過組建集群來對業務處理能力做水平擴展是雲信常用的一種方法。雲信最初在設計針對Web瀏覽器的長連接伺服器時,由於伺服器既需要處理SSL編解碼,又要做請求包的格式轉換,又要做長連接的管理,這直接導致了伺服器性能很快達到瓶頸。特別是在用戶側的連接有比較頻繁的重建的場景下,大部分的CPU資源都花在了SSL握手過程中。面對這個問題,網易雲信使用nginx作為前端代理,並把SSL的處理過程移到了nginx上,並使用性能較好的伺服器來做nginx代理服務,而在後端WebLink上直接使用http協議,極大提升了後端節點的處理能力。通過這種代理方式,在4核8G的虛擬機上,單個節點的承載能力從1萬連接數飆升至10萬。
從2015年10月上線就主打「真正穩定的IM雲服務」的網易雲信,至今已成功接入超過15萬APP開發者,覆蓋用戶達到驚人的5億以上。在網絡和區域上面覆蓋了196個國家,567個地區,並保證100%的送達率。除此之外,還獲得了國內即時通訊雲服務領域的首個CSA-STAR和ISO27001認證,並已擁有56項認證專利。雖然目前IM雲服務已呈現出多元化的發展趨勢,用戶和開發者對於IM服務提出碎片化、個性化和場景化的需求,但作為生存基石的穩定、快速、高並發的強化,反而更加重要。就如同武林高手過招,招式再花哨,沒有足夠深厚的內功,很難在大浪淘沙之後留存下來。通過周梁偉的分享,我們不僅看到了網易雲信在整體分層架構上的大智慧,還通過連接層的「三板斧」優化,了解了雲信是如何穩定快速的支持千萬級高並發消息量的。周梁偉先生的分享不但有助於引發國內各IM雲服務平臺對深化內功的重視和反思,而且這種分享精神對於面對挑戰的同行業者的集思廣益和共同進步,有著極具正能量的引導意義。
了解更多,請點擊http://www.netease.im/
關於網易雲信:
網易雲信是網易公司集16年IM經驗打造的即時通訊雲服務(PaaS),是網易雲第一個開放給市場的雲服務產品。開發者通過集成客戶端SDK和雲端OPEN API,即可快速實現強大的IM功能,作為PaaS服務模式的網易雲信全面支持Android、iOS、Web、PC等多平臺。除了應對傳統開發者的各項IM基本功能外,網易雲信還提供了高級通訊功能,包括實時音視頻、互動直播、教學白板、專線電話、簡訊、專屬雲在內的獨家功能以及更多其他服務。網易雲信滿足包括遊戲、協同辦公、在線醫療、在線客服、在線教育、娛樂、諮詢、生活服務、物流、旅遊、金融等各行業各種產品的即時通訊服務需求。