天天看點

10億使用者,同時線上使用者1億資料服務技術方案 目錄 1. 一般方案 2. 新方案

10億使用者,同時線上使用者1億資料服務技術方案 目錄 1. 一般方案 2. 新方案

<a href="#_Toc26174%20">目錄 1</a>

<a href="#_Toc25485%20">1. 一般方案 1</a>

<a href="#_Toc18733%20">1.1. 使用者資料構成 1</a>

<a href="#_Toc2897%20">1.2. 互動邏輯 2</a>

<a href="#_Toc2254%20">1.3. 方案特點 2</a>

<a href="#_Toc11726%20">2. 新方案 2</a>

<a href="#_Toc27355%20">2.1. 資料組織 2</a>

<a href="#_Toc25148%20">2.2. 互動邏輯 3</a>

<a href="#_Toc6252%20">2.3. 大并發 4</a>

<a href="#_Toc26896%20">2.4. 核心思想 4</a>

10億使用者,同時線上使用者1億資料服務技術方案 目錄 1. 一般方案 2. 新方案

1) 使用者名

具有唯一性,由使用者在注冊時由使用者自己确定,如各類郵箱使用者名; 或者由系統配置設定,如QQ号。

2) 使用者ID

也具有唯一性,使用者在注冊時由系統配置設定。

3) 使用者屬性

用來描述使用者的,如性别、年齡等。

4) 使用者行為

對使用者活動的記錄,如最近一個月的淘寶消費記錄。

10億使用者,同時線上使用者1億資料服務技術方案 目錄 1. 一般方案 2. 新方案

一般方案的有點是實作簡單,效率還不錯,記憶體成本效益不高。

資料組織的目的是為了更高效更經濟的提供資料服務。可以達到O(1)查找,和無鎖化查詢更新。

資料的組織采取經典的“image+editlog(也可叫binlog)”。離線處理放在每天通路量最小的時間段。

10億使用者,同時線上使用者1億資料服務技術方案 目錄 1. 一般方案 2. 新方案

顯然,取得使用者ID後的後續操作都是O(1),這樣具備極佳的性能。基于數組,還可以實作無鎖化查詢。

10億使用者,同時線上使用者1億資料服務技術方案 目錄 1. 一般方案 2. 新方案

按使用者ID垂直切片,如切分成100片。20台機器時,每台加載5片;共10台機器時,每台加載10片。如此多叢集服務,即可實作上億同時線上服務。

數組化是新方案的核心。基于數組,不但提供了最快的查詢,而且不浪費記憶體,“image+editlog”使得資料更新高效簡單,且不需要中斷服務。

x

繼續閱讀