架构实战营 - 模块二作业
微信朋友圈高性能复杂度分析及架构设计
作业要求
1、对照模块 2 讲述的复杂度分析方法,分析微信朋友圈的复杂度;
2、针对各个复杂度,画出你的架构设计方案(无需做备选方案,只需要最终的方案即可);
3、给出你的架构方案中关键的设计理由。
4、3~5 页 PPT 即可,涵盖复杂度分析、架构设计、设计理由。
微信朋友圈数据及业务指标
每天有 10.9 亿用户打开微信,有 7.8 亿用户进入朋友圈
1 月 19 日晚,在微信公开课 Pro 上,微信创始人张小龙披露微信最新数据:每天有 10.9 亿用户打开微信,3.3 亿用户进行了视频通话;有 7.8 亿用户进入朋友圈,1.2 亿用户发表朋友圈,其中照片 6.7 亿张,短视频 1 亿条;有 3.6 亿用户读公众号文章,4 亿用户使用小程序。
微信朋友圈高性能复杂度分析
1、查看朋友圈
假设 7.8 亿用户每天查看 10 次朋友圈,QPS:7.8 亿*10/24*60*60,约为 9 万/TPS
2、发布朋友圈
假设 1.2 亿用户没人发布 5 个朋友圈,TPS:1.2 亿*5/24*60*60,约 7000/TPS
3、评论点赞朋友圈
假设每个发布朋友圈有 5 个评论或点赞,TPS:约为 3.5 万/TPS
微信朋友圈高性能方案
查看朋友圈
发布朋友圈
朋友圈点赞评论
微信朋友圈整体架构图
单机房示意图
微信朋友圈整体架构思路
1、根据朋友圈业务复杂度以及访问量等数据,可以判断业务复杂度较低,但高性能复杂度很高,对高可用要求相对较低,对高性能要求较高。
2、基于朋友圈的关系特性,数据存储应基于关系型数据库;出于高性能要求考虑,可先采用 Redis 缓存数据,再将数据持久化到数据库。
3、考虑查看朋友圈高峰时期的访问量,可以将数据由数据库加载到 redis 缓存,应用直接访问 Redis 集群方式快速获取数据。
评论