架构实战营 - 模块 2 - 作业
微信朋友圈性能复杂度分析
根据 2021.1 月张小龙公布数据,每天有 10.9 亿用户打开微信,3.3 亿用户进行了视频通话;有 7.8 亿用户进入朋友圈,1.2 亿用户发表朋友圈,其中照片 6.7 亿张,短视频 1 亿条;有 3.6 亿用户读公众号文章,4 亿用户使用小程序。
根据以上数据,需要作出额外两个假设
假设活跃时间为非工作时间,假定 9-10、12-13、18-24 一共 8 个小时,峰值按照活跃时间 5 倍预估。
假设每个用户每天进入朋友圈 5 次,发表 1 次,每条发表内容 20 条评论点赞。
基于以上信息,可以预估出 TPS:
朋友圈相关操作,最大的取舍在于读扩散还是写扩散。由于平均写入频率远低于读频率,以及读取需要遍历所有好友信息,因此写扩散是更为合理的选择。
因此,可以将任务定义为:
发朋友圈:将内容写入数据库,并将详细记录同步到可见好友的时间线中
评论、点赞:对数据库记录进行直接操作
看朋友圈:读取时间线中的对应记录内容
评论