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