10亿用户,同时在线用户1亿数据服务技术方案


10亿用户,同时在线用户1亿数据服务技术方案10亿用户,同时在线用户1亿数据服务技术方案.pdf

目录

目录 1

1. 一般方案 1

1.1. 用户数据构成 1

1.2. 交互逻辑 2

1.3. 方案特点 2

2. 新方案 2

2.1. 数据组织 2

2.2. 交互逻辑 3

2.3. 大并发 4

2.4. 核心思想 4

 

1. 一般方案

1.1. 用户数据构成

10亿用户,同时在线用户1亿数据服务技术方案

1) 用户名

具有唯一性,由用户在注册时由用户自己确定,如各类邮箱用户名; 或者由系统分配,如QQ号。

2) 用户ID

也具有唯一性,用户在注册时由系统分配。

3) 用户属性

用来描述用户的,如性别、年龄等。

4) 用户行为

对用户活动的记录,如最近一个月的淘宝消费记录。

1.2. 交互逻辑

10亿用户,同时在线用户1亿数据服务技术方案 

1.3. 方案特点

一般方案的有点是实现简单,效率还不错,内存性价比不高。

2. 新方案

2.1. 数据组织

数据组织的目的是为了更高效更经济的提供数据服务。可以达到O(1)查找,和无锁化查询更新。

数据的组织采取经典的“image+editlog(也可叫binlog)”。离线处理放在每天访问量最小的时间段。

10亿用户,同时在线用户1亿数据服务技术方案 

2.2. 交互逻辑

显然,取得用户ID后的后续操作都是O(1),这样具备极佳的性能。基于数组,还可以实现无锁化查询。

10亿用户,同时在线用户1亿数据服务技术方案 

2.3. 大并发

按用户ID垂直切片,如切分成100片。20台机器时,每台加载5片;共10台机器时,每台加载10片。如此多集群服务,即可实现上亿同时在线服务。

2.4. 核心思想

数组化是新方案的核心。基于数组,不但提供了最快的查询,而且不浪费内存,“image+editlog”使得数据更新高效简单,且不需要中断服务。

 


x