架构实战营 - 第 6 期 模块二课后作业
1、朋友圈业务背景分析:根据 2021 年微信官方数据统计,微信总用户 12.6 亿,每天有 10.9 亿打开微信,7.8 亿人进入朋友圈,1.2 亿用户发表朋友圈,其中照片 6.7 亿张,短视频 1 亿条。
2、朋友圈高性能复杂度分析
浏览场景假设:7.8 亿进入朋友圈的人,每人一天进入朋友圈 10 次;排除睡觉时间,大部分都是在白天 8-22 点进入的,中午休息和晚上下班以 后进入朋友圈的量,要比平均人数高 5 倍,所以:
浏览平均 QPS =(7.8 亿 * 10) /(3600 * 14) ≈ 15 万
浏览峰值 QPS = 15 万 * 5 ≈75 万
发表朋友圈场景假设:发朋友圈的时间,集中在中午下班 2 个小时和晚上下班 6 个小时之内。
发朋友圈 TPS = (1.2 亿 ) /(3600 * 8) ≈ 4 千
评论场景假设:一条朋友圈的评论数是 5 个,时间跟进入朋友圈的时间一样
评论 TPS = (1.2 亿 * 5)/ (3600 * 14 )≈ 2 千
点赞场景假设:一条朋友圈的点赞平均数是 10 个,时间跟进入朋友圈时间一样
点赞 TPS = (1.2 亿 * 10) /(3600 * 14) ≈ 2 万
3、朋友圈高性能复杂度分析
4、朋友圈高性能方案--浏览
5、朋友圈高性能方案--点赞
6、朋友圈高性能方案--评论
7、朋友圈高性能方案--发文
8、朋友圈架构图--单机房的架构图
设计思路:
1、浏览 QPS 很高,使用数据库分片加 CDN 边缘结点缓存图片和短视频内容,提高相应速度。
2、点赞的 TPS 也比较高,使用 redis 缓存点赞数据,快速返回给用户,然后再把数据同步给数据库。
3、评论和发文 TPS 中等,使用数据库分片存储和响应即可。
版权声明: 本文为 InfoQ 作者【乐邦】的原创文章。
原文链接:【http://xie.infoq.cn/article/3a92cea62bd9e980472b28444】。未经作者许可,禁止转载。
评论