微信朋友圈的高性能复杂度
复杂度分析:
朋友圈的业务复杂度:朋友圈的业务主要有浏览、发动态、点赞和发评论等,业务复杂度较低
朋友圈的质量复杂度:朋友圈的用户众多,遍布全国各地,甚至国外也有大量用户,质量复杂度较高
微信日活跃用户达 10.9 亿,有 7.8 亿人每天翻看朋友圈,其中的 1.2 亿人会每天更新朋友圈。
大部分人是在工作之余翻看朋友圈,主要集中在早中晚,有些人在这些时间段都会翻看朋友圈
发动态:假设 1.2 亿人都在中午 2 小时发动态,TPS:1.2 亿/(2*60*60) = 2 万
浏览:假设 7.8 亿人都在中午 2 小时翻看了朋友圈,QPS:7.8 亿/(2*60*60) = 11 万
点赞:假设翻看朋友圈的人有一半的概率点赞,TPS:5.5 万
发评论:假设翻看朋友圈的人有 1 成发评论,TPS:1.1 万
动态发布:
发布的内容既包括文字又包括图片、视频等文件,因此需要关系数据库和文件存储服务器(如 FastDFS)
点赞和发评论:
点赞和发评论都是对某条动态的操作,可以将对某条动态的处理通过 hash 负载均衡到某台服务器上,
加一层 redis 缓存,先操作缓存,再同步到数据库
浏览:
需要读取每条动态的数据、文件,以及这条动态对应的点赞和评论
最终架构:
多机房部署,单机房架构如下
评论