写点什么

【架构训练营模块二作业】分析一下微信朋友圈的高性能复杂度

作者:yhjhero
  • 2022 年 2 月 11 日
  • 本文字数:764 字

    阅读完需:约 3 分钟

分析一下微信朋友圈的高性能复杂度

【作业要求】

1. 对照模块 2 讲述的复杂度分析方法,分析微信朋友圈的复杂度。

2. 针对各个复杂度,画出你的架构设计方案(无需做备选方案,只需要最终的方案即可)。

3. 给出你的架构方案中关键的设计理由。

4. 3~5 页 PPT 即可,涵盖复杂度分析、架构设计、设计理由。

【提示】

1. 分析过程可以参考模块 2 第 5 课的实战案例,但是不需要将分析过程一一列举出来。

2. 如果某个地方被卡主了,请及时联系助教或者老师讨论。

朋友圈复杂度总体分析:

朋友圈的业务复杂度:朋友圈的业务主要有浏览、发动态、点赞和发评论等,业务复杂度较低

朋友圈的质量复杂度:朋友圈的用户众多,遍布全国各地,甚至国外也有大量用户,质量复杂度较高

朋友圈高性能复杂度分析:

根据新闻:

http://k.sina.com.cn/article_6468040956_1818678fc02000vswg.html

微信日活跃用户达 10.9 亿,有 7.8 亿人每天翻看朋友圈,其中的 1.2 亿人会每天更新朋友圈。

按业务分析:

大部分人是在工作之余翻看朋友圈,主要集中在早中晚,有些人在这些时间段都会翻看朋友圈

发动态:假设 1.2 亿人都在中午 2 小时发动态,TPS:1.2 亿/(2*60*60) = 2 万

浏览:假设 7.8 亿人都在中午 2 小时翻看了朋友圈,QPS:7.8 亿/(2*60*60) = 11 万

点赞:假设翻看朋友圈的人有一半的概率点赞,TPS:5.5 万

发评论:假设翻看朋友圈的人有 1 成发评论,TPS:1.1 万

朋友圈高性能方案-发动态:

发布的内容既包括文字又包括图片、视频等文件,因此需要关系数据库和文件存储服务器(如 FastDFS)


朋友圈高性能方案-点赞和发评论:

点赞和发评论都是对某条动态的操作,可以将对某条动态的处理通过 hash 负载均衡到某台服务器上,

加一层 redis 缓存,先操作缓存,再同步到数据库


朋友圈高性能方案-浏览:

需要读取每条动态的数据、文件,以及这条动态对应的点赞和评论


朋友圈高性能总体架构:

采用多机房集群,单机房架构如下:


用户头像

yhjhero

关注

还未添加个人签名 2020.09.05 加入

还未添加个人简介

评论

发布
暂无评论
【架构训练营模块二作业】分析一下微信朋友圈的高性能复杂度