架构实战营模块二作业
分析一下微信朋友圈的高性能复杂度
分析复杂度
微信日活跃用户达 10.9 亿,有 7.8 亿人每天翻看朋友圈,其中的 1.2 亿人会每天更新朋友圈。
假设 1.2 亿人每人每天发送 5 条朋友圈,TPS 为 1.2 亿*5/16 小时=10417TPS,留出 buffer 为 2 万 TPS
假设每个朋友圈下平均有 10 条评论与点赞,6 亿*10/16 小时=104167TPS,留出 buffer 为 11 万 TPS
假设每人每天浏览 20 条朋友圈,每条朋友圈下能看到有 3 条评论,7.8 亿*20*3/16 小时=812500QPS,留出 buffer 为 90 万 QPS
架构方案
给出你的架构方案中关键的设计理由
将发朋友圈、浏览朋友圈、评论分为三个业务模块进行拆分,朋友圈查看到的数据为自己好友数据,不涉及到热点数据所以没有使用缓存;朋友圈不涉及到高并发业务,数据量不会突然集中;朋友圈一般是按照时间线进行排序,所以数据库数据按照时间进行分库分表存储
评论