写点什么

架构实战营 - 模块 2- 作业

用户头像
冬天的树
关注
发布于: 2021 年 04 月 17 日

微信朋友圈高可用架构设计

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

【作业要求】

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

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

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

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

【提示】

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

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

微信朋友圈背景分析

每天有 10.9 亿人打开微信,3.3 亿人进行视频通话,7.8 亿人进入朋友圈,1.2 亿人发朋友圈,朋友圈每天有 1 亿条视频内容,3.6 亿公众号,4 亿用户使用小程序。朋友圈每天有 1 亿条视频内容。每天有 3.6 亿人进入公众号,4 亿用户使用小程序。

微信朋友圈架构设计-复杂度分析

在 2021 微信公开课 Pro 直播演讲中,微信创始人张小龙披露微信最新数据:每天有 7.8 亿人进入朋友圈,1.2 亿人发朋友圈,朋友圈每天有 1 亿条视频内容。 

微信的主要场景可分为:浏览时间线、浏览好友相册、发布、点赞、评论。

对场景对如下假设:

1.微信用户每天对朋友圈的操作集中在早 10 点到晚 8 点这 10 个小时内

2.微信用户每天对朋友圈的操作高峰峰值是平均的 2 倍

3.微信用户平均每天进入朋友圈浏览时间线的次数为 10 次

4.微信用户浏览好友相册的访问量是浏览时间线访问量的 40%

5.微信用户发布朋友圈的发布频次为平均每天 2 次

6.发布朋友圈记录中有 80%的比例会被点赞,平均每条点赞数 7 次

7.发布朋友圈记录中有 20%的比例会被评论,平均每条评论 4 次

推导出


二、朋友圈高性能方案设计

整体架构图

单机房示意图

三、朋友圈高性能方案-设计理由

设计要点

  1. 发展到现在微信朋友圈的业务体量很大,而且是全国性的业务,猜测微信朋友圈部署架构是分区域分机房部署,机房间通过高速网络连接同步数据

  2. 单机房使用 Nginx 或者 F5 做负载,进行流量人发了

  3. 通过分析发现时间线、相册、发布、点赞、评论的 QPS/TPS 差异较大,根据业务进行了拆分,将朋友圈相册时间线和动态放在一个朋友,然而点赞、评论放在另外一个服务中

  4. 在使用朋友圈时候,根据动态,会获取对应的点赞、评论,该业务适合 mongodb,因数据库分进行了拆解


用户头像

冬天的树

关注

还未添加个人签名 2018.01.18 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营 - 模块 2- 作业