5G因高速率、大容量和低時延三個主要特征,為我們帶來了無限遐想,但如果底層通信能力及設(shè)計架構(gòu)不足以支撐高并發(fā)的場景,高延時仍然不可避免,那么5G技術(shù)所賦予的全新應(yīng)用體驗也將大打折扣,因此,掌握高并發(fā)的通信技術(shù)在5G時代至關(guān)重要。
在2019全球互聯(lián)網(wǎng)通信云(WIIC)大會上,融云技術(shù)總監(jiān)高曉光在“架構(gòu)演進與性能優(yōu)化”論壇演講中毫無保留地分享了融云高并發(fā)通信技術(shù)的系統(tǒng)設(shè)計與實踐,希望給廣大開發(fā)者提供一些實戰(zhàn)幫助。作為通信云行業(yè)的技術(shù)領(lǐng)導(dǎo)者,融云連續(xù)五年保持IM即時通訊市場占有率第一,是業(yè)內(nèi)唯一承諾在高并發(fā)和弱網(wǎng)環(huán)境下,仍然可以保障消息不丟、不重、不亂序的廠商,融云的高并發(fā)通信技術(shù)和系統(tǒng)架構(gòu)也已成為業(yè)界爭相學(xué)習(xí)的技術(shù)標(biāo)桿。
融云技術(shù)總監(jiān)高曉光演講
高并發(fā)系統(tǒng)的設(shè)計要點
WICC會上,高曉光首先分享了融云在整個通信平臺上常用的系統(tǒng)性能優(yōu)化手段。在系統(tǒng)運行的性能上,融云主要關(guān)注業(yè)務(wù)、系統(tǒng)和存儲三個層面的問題。在業(yè)務(wù)層面,建議開發(fā)者關(guān)注每個業(yè)務(wù)請求接口的響應(yīng)時長,動態(tài)掌握正確的響應(yīng)時長,過長和過短都不合理,并對程序運行中的性能拐點,盡可能的優(yōu)化,延長其到來的時間,這可極大提升高并發(fā)的業(yè)務(wù)承載能力。在系統(tǒng)層面,程序運行過程中關(guān)注CPU、內(nèi)存和I/O這三方面的使用情況,合理配置資源;在存儲層面,根據(jù)實際業(yè)務(wù)場景做數(shù)據(jù)庫選型,選擇合適的存儲介質(zhì)。
基于以上性能問題關(guān)注點,高曉光坦言融云高并發(fā)系統(tǒng)的設(shè)計要點主要集中在以下四個方面:
融云高并發(fā)系統(tǒng)的設(shè)計要點
1、采用異步化的請求處理。目前,融云采用基于Actor模型自研的分布式RPC框架來實現(xiàn)整個通信云平臺,不但可以把請求的源數(shù)據(jù),像流水線一樣在每個節(jié)點處理完后直接下轉(zhuǎn),還可以將最終處理的結(jié)果通過溯源直接投遞回去,從而減少數(shù)據(jù)的調(diào)用次數(shù)。相對于同步的方式,異步化可以提高資源的復(fù)用程度,中間需要被處理的節(jié)點越多,異步化的優(yōu)勢會越明顯。
2、合理的緩存策略。通過數(shù)據(jù)、分布式緩存、本地緩存、客戶端緩存層層遞進的緩存策略,使越活躍的數(shù)據(jù)越逼近客戶。目的在于讓熱的數(shù)據(jù)離它要處理的位置更近,以提高緩存的利用率,加快數(shù)據(jù)處理的速度。
3、選用適合的數(shù)據(jù)結(jié)構(gòu)與算法,可以極大的提高整個程序的計算性能。例如一致性哈希算法,可用于整個服務(wù)的數(shù)據(jù)的散列,或者節(jié)點的定位;LRU緩存,一個帶數(shù)據(jù)淘汰的緩存組件,把冷的數(shù)據(jù)淘汰掉,把位置騰給熱的數(shù)據(jù),提高數(shù)據(jù)利用率;BitMap,每一個比特位都可用來標(biāo)識一個狀態(tài)位,可用于快速的狀態(tài)判斷和節(jié)省存儲空間;BloomFilter可以認(rèn)為是BitMap的一種應(yīng)用,可以用來快速判定數(shù)據(jù)是否存在,避免緩存穿透。
4、高效的數(shù)據(jù)存取模型。在融云整個系統(tǒng)里面會常用到幾種不同的存儲類型,沒有高下之分,高曉光說選用的原則是一定要符合業(yè)務(wù)場景。例如,存用戶的在線和離線狀態(tài),融云會選用KV存儲;存儲消息,由于消息對于時序的要求很高,所以可以選擇時序型數(shù)據(jù)庫。數(shù)據(jù)怎么用起來方便,就怎么去存取它。
高并發(fā)系統(tǒng)架構(gòu)的最佳實踐解讀
WICC上,高曉光談到消息分發(fā)的典型場景有單聊、群聊、聊天室,不同場景應(yīng)具體分析、分別應(yīng)對,才是解決高并發(fā)問題的秘訣。會上特別針對群聊和聊天室的不同特點,融云分享了不同的最佳實踐方案。
針對群聊場景。首先,融云在系統(tǒng)中使用消息分發(fā)控制策略,在群消息分發(fā)中引進快、中、慢三個隊列,分別設(shè)置不同的延時值,根據(jù)不同的群成員數(shù)量,映射到不同處理隊列中,將絕大多數(shù)百人以下的群放入快速隊列,進行快速處理,可極大地減輕分發(fā)的壓力。
其次,融云采用消息直推與通知拉取相結(jié)合的方式,在消息不頻繁時用直推模式,當(dāng)消息量爆增,產(chǎn)生積壓時即轉(zhuǎn)為通知拉取模式。同時,使用ACK機制進行消息可靠同步,且同步的消息嚴(yán)格按照時間戳有序進行,這個時間戳由服務(wù)端保證唯一性,這也是融云敢于承諾消息不重不丟不亂序的秘籍所在。
再則,融云通過“引用分發(fā)”機制降低消息緩存的存儲占用。原則上,是按消息大小及群成員數(shù)量來判定是否采用“引用分發(fā)”。當(dāng)消息體大,如發(fā)送語音或圖片時,就采用“引用分發(fā)”機制,只分發(fā)一個索引,當(dāng)終端實際拉取消息時,再推送實體消息。
針對聊天室場景。聊天室和群聊的不同之處在于:聊天室的成員關(guān)系是臨時性的,出入頻繁,若遇大型直播,成員瞬時可達幾萬甚至幾十萬,消息極其活躍,瞬時峰值極高。融云承諾的是成員無上限的聊天室服務(wù),最高服務(wù)過15萬人同時在線,每秒消息的分發(fā)量超過2000萬條,日消息峰值超2218億條。
為滿足高并發(fā)消息的服務(wù)請求,融云部署了環(huán)形隊列的內(nèi)存緩存,滾動保存最近的50條消息。在終端完全改用通知拉取的方式,用戶收到通知后,可從服務(wù)端的緩存中獲取消息,這起到了很好的限流作用,直接緩解了終端壓力。
另外,對于聊天室而言,融云根據(jù)多年服務(wù)客戶的經(jīng)驗以及自身的技術(shù)模型,制定了一套按消息類型進行消息拋棄的處理機制。例如大型直播的場景,消息可能頻繁到每秒瞬間幾萬條消息涌向終端,即便終端能夠處理過來,用戶也未必看得過來,體驗反而很差。所以當(dāng)直播間消息量過大或消息頻率過高時,融云會為消息設(shè)置優(yōu)先級,并將連續(xù)消息和相似消息優(yōu)化成一條“疊加消息”,同時根據(jù)優(yōu)先級機制拋棄無用戶屬性消息,確保消息并發(fā)量極大的情況下,用戶端也可以享受流暢的直播互動體驗。對于聊天室,融云還額外對消息上行進行限流,也有效提升了用戶體驗。
未來所面臨的挑戰(zhàn)和改進
隨著5G+物聯(lián)網(wǎng)時代的到來,各種終端設(shè)備甚至?xí)由斓接|手可及的任意一物,海量消息激增將直接導(dǎo)致高并發(fā)的場景無處不在,底層的通信系統(tǒng)架構(gòu)也將面臨難于想象的考驗。
高曉光表示,融云一直以來在服務(wù)性能上都圍繞著三大重心去進行優(yōu)化,一、合理的算法,降低CPU使用;二、合理的內(nèi)存結(jié)構(gòu),降低內(nèi)存用量,提高緩存利用率;三、盡可能的降低I/O的頻次。同時,高曉光在演講中還著重強調(diào):任何的優(yōu)化都需要符合特定的場景,如果沒有場景,任何優(yōu)化都毫無意義。
回顧前文,融云的云通信系統(tǒng)架構(gòu)之所以能夠經(jīng)受住各種高并發(fā)的極端考驗,與融云正確分析場景的特點,進而采取有效對策密切相關(guān)。此次融云在WICC上的技術(shù)分享,希望幫助開發(fā)者了解到,在單群聊及聊天室這樣典型的消息分發(fā)場景下,通信云技術(shù)如何對高并發(fā)業(yè)務(wù)進行支撐。通過高并發(fā)系統(tǒng)設(shè)計及最佳實踐的解讀,融云希望引領(lǐng)業(yè)界技術(shù)領(lǐng)袖一起,持續(xù)推動通信云技術(shù)對5G多應(yīng)用場景的服務(wù)性能優(yōu)化與提升。
- 蜜度索驥:以跨模態(tài)檢索技術(shù)助力“企宣”向上生長
- 比亞迪第五代DM技術(shù)問世,首搭秦L/海豹06 DM-i,開創(chuàng)油耗2時代!
- 小紅書沉帖降權(quán)怎么做,有效方法大盤點!
- 亞洲時刻京東送上電視好禮 以舊換新一體化服務(wù)讓低價更靠譜
- 互聯(lián)網(wǎng)營銷師和全媒體運營師的區(qū)別?
- 聯(lián)想集團車計算“超級大腦”概念機亮相
- 華策影視設(shè)立專項基金成立AIGC應(yīng)用研究院
- 三部委審批,聯(lián)合發(fā)布9個新職業(yè),“互聯(lián)網(wǎng)營銷師”上榜
- 互聯(lián)網(wǎng)營銷師的報考條件是什么?
- 互聯(lián)網(wǎng)營銷師的適合人群有哪些?
- 互聯(lián)網(wǎng)營銷師行業(yè)前景怎么樣?
免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。