架构实战营 - 模块二作业
一、复杂度分析
截止到 2015 年 7 月,微信每月活跃用户约 5.49 亿,朋友圈每天的发表量(包括赞和评论)超过 10 亿,浏览量超过 100 亿。得益于 4G 网络的发展,以上数据仍有很快的增长,而且相对于 PC 互联网时代,移动互联网时代的峰值要来得更加凶猛。比如,2015 年元月的流量到了平时的 2 倍,而峰值则达到了平时峰值的 2 倍,相当于平时正常流量的 5 倍。
2021 年初最新数据:每天有 10.9 亿用户打开微信,3.3 亿用户进行了视频通话;有 7.8 亿用户进入朋友圈,1.2 亿用户发表朋友圈,其中照片 6.7 亿张,短视频 1 亿条;有 3.6 亿用户读公众号文章,4 亿用户使用小程序。
假设用户每天浏览 10 次朋友圈,7.8 亿用户每天浏览量约 80 亿,高峰期为中午午休的 2 小时和下午下班 2 小时,由二八法则估算浏览朋友圈的 QPS 为:78 亿*0.8 / (4*3600) ≈ 40W;假设人均每天发 1 条朋友圈,同理可估算出发朋友圈的 TPS 为:1.2 亿 / (4*3600) ≈ 1W;点赞、评论假设人均每天 5 次,TPS 为:5W 左右;节假日按正常流量的 5 倍计算,发朋友圈的 TPS 将达到 5W,点赞评论 TPS 将达到 25W,浏览 QPS 将达到 200W。
1.1 总体分析
业务复杂度:低,核心业务包括发朋友圈、点赞、评论、浏览朋友圈
质量复杂度:高,由公开数据可见,微信朋友圈的质量复杂度在于海量的数据存储和高 QPS
1.2 各场景高性能复杂度分析
发朋友圈
看朋友圈
点赞 &评论
二、架构方案
设计理由:
由于数据量、请求量大,用户来自不同地区,所以采用多数据中心架构
静态资源用 OSS 存储,用 CDN 加速,动态资源用 redis 缓存,减少 DB 访问
mysql 分库分表减轻单库存储和访问压力
评论