QQ架構演進

QQ在最先期1.0時代,因爲用戶量較少,十萬級在線,而且業務功能很是簡單,所以架構很是簡單,由QQ客戶端+接入服務器+存儲服務器組成。隨後隨着業務的拓展,須要支持支持視頻、語音、傳文件等實時寬帶業務,以及更多類型的用戶資料服務器

1. 增長了長鏈接服務器,爲沒法直連的客戶端進行實時寬帶數據中轉,還對存儲服務器進行輕重分離,使核心服務器保證穩定,利用擴展服務器快速支持新增業務。
2. 2.0的主要改進在於單臺服務器擴展成集羣,增長狀態同步服務器。在接入服務器之間同步在線狀態。微信

3.隨後爲了支持QQ羣,又將2.0升級到2.5,增長了QQ羣服務器和羣貼圖服務器。架構

在從十萬到百萬的過程當中,有兩個重要的經驗,一是後臺架構的高性能,主要經過六個方面實現:絕對不用企業級解決方案,邏輯層多進程,萬有一失的無鎖設計,用戶態IPC,MySQL分庫分表,好友表自寫文件存儲。二是7乘24小時連續服務,主要經過如下方法實現的:大系統小作,平滑重構,核心數據放入共享內存,接入層與邏輯層分離,命令分發動態配置化。
  3.0改造的主要特色是全面的集羣化運維

  隨着在線億時代的到來,新的問題和煩惱也隨之出現。首先是靈活性問題,好比說QQ暱稱長度增長一半須要兩個月,增長故鄉字段須要兩個月,增長最大好友數從500變成1000須要三個月。其次,億時代還須要具有一些重要的能力,好比原來有上萬的好友;對隱私權的控制;PC QQ與手機QQ別互踢;異地容災,即一個城市出問題的時候,別的城市也能提供服務等等。但億時代帶來的最大的挑戰是,原先IM後臺從1.0到3.5都是在原有的基礎上改造升級,IM後臺1.0的代碼在3.5的下面都能找到,可是這種持續打補丁的方式已難以支撐上億級的用戶。因此除了底層的公共部分以外,IM後臺4.0必須從零開始,從新設計實現。
  IM後臺4.0存儲系統歷時三年完成,支持千萬級的好友在線,增強了隱私權限控置,能夠靈活擴展字段,原來擴展一個字段須要兩三個月,如今只須要一週,同時還具有高可運維性,高性能。
  IM後臺4.0通訊系統歷時兩年多,架構比原來的複雜不少,但願再過一年能夠完成。到目前爲止,已取得了一些成果:首先是多點登錄,能夠管理不一樣的登錄終端;支持5至10億個實例同時在線;方便接入微信等多種業務;實現區域自治。
  在億級在線時代,須要的關鍵技術首先是提供高靈活性的業務支持,傳統IT行業可能半年到兩年出一個新版本,而互聯網行業每月就須要出一個新版本。同時還要保持高性能,高可用性,高可運維性。展望騰訊IM服務的將來之路,全球化分佈、高效的研發、監控報警的智能化成爲將來發展的戰略。性能

相關文章
相關標籤/搜索