模块二作业
【作业要求】
1. 对照模块 2 讲述的复杂度分析方法,分析微信朋友圈的复杂度。
2. 针对各个复杂度,画出你的架构设计方案(无需做备选方案,只需要最终的方案即可)。
3. 给出你的架构方案中关键的设计理由。
4. 3~5 页 PPT 即可,涵盖复杂度分析、架构设计、设计理由。
网上查到数据:
复杂度分析:
发动态:每天 1.2 亿人发动态,假设每人一天发布 1.5 条动态,每天共发布 1.8 亿条动态,估算 8K TPS。
看动态:7.8 亿人进入朋友圈,假设每人每天进入 4 次,则为 31 亿次,估算 14w QPS。
点赞:假设浏览人次中,每人点赞 10 个动态,每天点赞共 78 亿次,估算 35w TPS。
评论:假设浏览人次中,每人评论 5 个动态,每天评论共 39 亿次,估算 18w TPS。
功能模块分析:
高性能方案分析:
架构设计:
架构设计理由:
1.对动态发布和查看朋友圈进行分离,因为服务用户不同。动态由本人发布推送给好友,查看(点赞评论)由好友发起;
2.使用 redis 缓存近期朋友圈,增加读写效率;
3.超过 x 天朋友圈查看频次较少,数据调用次数不高,可以放到后端数据库中进行大量存储;
评论