1、ArchSummit全球架构 师 峰会深圳站 2016QQ空 间亿级 服 务 后台架构认识 一下 QQ空 间UGC写量 UGC日写操作量超 2亿 照片上 传 量 单 日超 7亿存 储 量 照片 总 存 储 超200P空 间 的数据 ( 仅 参考)用 户 数 总 活 跃 用 户 数超6亿 日 DAU超 3亿访问 量 空 间 首屏日打开量超 30亿目 录 空 间简 介 系 统 架构 功能模 块 系 统 演化之路 系 统优 化 用 户侧 流量 优 化 系 统 接入 优 化 系 统 容灾 全网 调 度 系 统 削峰用 户 数据 关系 链 数据权 限数据主要功能模 块UGC数据日志系 统分享系 统留言板
2、基 础 数据相册系 统商城系 统精 细 化CDN服 务图 片视频说说 系 统手机 QQ手机空 间接入( WNS)Feeds系 统好友 动态( 30天好友混排)落地 动态(被 动 个人档)FEEDS广告FEEDS推荐个性化 设 置SNS模型 对 比Feeds存 储 (数据量: 9T,内存 KV)空 间 拉模型拉取关系 链打开空 间 拉取好友 Feeds好友 0 Feed0、 Feed1、 好友 1 Feed0、 Feed1、 Feed0、 Feed1、 好友 2 Feed0、 Feed1、 好友 19910w/s10w * 200/s200好友访问 量: 10w * 200/s = 2000w/
3、s总 流量: 10w * 200/s * 20条 /人 * 1k/条 = 3.2T存 储 量: 9T(内存 )优 化后(引入 时间 戳 &按天存 储 )时间 戳存 储 ( 内存数 组 )Feeds存 储 (数据量: 9T,内存 KV)10w * 10/s拉取好友Feeds好友 0好友 1NewFeeds_TS0NewFeeds_TS1好友 0好友 1好友 2Day0Day0Day0Day1Day1Day1Day29Day29Day29好友 9 Day0 Day1 Day29访问 量: 10w * 10/s = 100w/s总 流量: 10w * 10/s * 2条 /人 * 1k/条 = 16
4、G存 储 量 9T ( mem) 瓶 颈问题 :1,越活 跃 用 户 失 败 率越高2,越到晚高峰失 败 率越高3,存 储 量瓶 颈好友 19910w/sNewFeeds_TS210好友拉取好友 时间 戳时间 戳存 储 ( 内存数 组 )再 优 化(引入索引)拉取好友 FeedsKV 9T)Feeds_Data010w * 6/s拉取好友tsTS0TS1TS2好友 0好友 1好友 19910w/s 10好友Feed_ID1 Feeds_Data1Feed_ID2 Feeds_Data2Feed_ID5 Feeds_Data3拉取好友idx索引存 储 ( 内存 KV 450G)好友 0好友 1好
5、友 9Idx0.idx19Idx0.idx19Idx0.idx19id0id5访问 量: 10w * 6/s = 60w/s( 请 求再合并)总 流量: 10w * 6/s * 1条 /人 * 1k/条 = 4.8G存 储 量: 9T( SSD)Feeds存 储 ( SSDFeed_ID0问题 :1,越活 跃 用 户 失 败 率相 对还 是越高好友 0 TS0好友 1 TS1好友 9 TS9好友 10 TS10再 优 化(索引分 时间 段拉取)Sorted时间 戳拉取好友 Feeds拉取好友ts10w/s 拉取好友idxid0id5计 算 时间 区 间10好友 (ts0 ts9) 10个好友时间 段 ( ts0 ts9)TS19=20个好友时间 段 ( ts10 ts19)好友 19拉取索引(好友 0:t0-t9)(好友 1:t0-t9)(好友 9:t0-t9)越活 跃 , 时间 跨度就会越小