写点什么

架构实战营 模块二 作业

用户头像
一雄
关注
发布于: 4 小时前

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

【作业要求】

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

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

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

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


业务背景

2011 年,微信发布。

2011 年 5 月,微信 4.0 发布,带来了朋友圈功能。

2013 年 7 月 22 日早上 7:30,有大量用户反映微信发生全面故障,故障包括微信信息无法发出、无法刷新朋友圈、无法登陆公众账号平台、无法连接微信网页版。

2021 年 1 月 19 日,腾讯高级执行副总裁、微信事业群总裁张小龙在“2021 微信公开课 PRO”重头戏的“微信之夜”活动上亮相。在一个多小时的时间里,他从视频号、直播等方面分享了微信十年的重要进展。他说,虽然多了很多功能,但微信还是像十年前那样简单,“小而美的产品,有自己的灵魂,我和团队的工作也因此而有意义”。

张小龙在演讲中表示,每天有 10.9 亿用户打开微信,3.3 亿用户进行了视频通话;有 7.8 亿用户进入朋友圈,1.2 亿用户发表朋友圈,其中照片 6.7 亿张,短视频 1 亿条3.6 亿用户读公众号文章,4 亿用户使用小程序。微信支付已经像钱包一样,成了一个生活用品。“十年后,微信变成了某种意义上的生活方式,这要感谢微信平台上的每一个创作者”。

https://mp.weixin.qq.com/s/LwkXAhTHx3fkToQMsy5lDg - 《张小龙:微信十年的产品思考》

https://mp.weixin.qq.com/s/O1jeKn4fDyrSj8opWFS4aQ - 《微信朋友圈技术之道:三个人的后台团队与每日十亿的发布量》


业务指标分析

朋友圈

  1. 发朋友圈 1.2*1*10^8/3600/24=1388 TPS (假设每人每天发 1 条朋友圈)

  2. 看朋友圈 7.8*8*10^8/3600/24=72222 QPS (假设每人每天看 8 次朋友圈)

  3. 点赞/评论 7.8*2*10^8/3600/24=18055 TPS (假设每人每天评论 2 次朋友的评论)

  4. 峰值系数为 5


发朋友圈/点赞评论高性能分析

  1. 单机

  2. 计算高性能

  3. 进程模型:多进程 C/C++进程通信

  4. 网络模型:Reactor

  5. 缓存模型:无

  6. 存储高性能

  7. 存储模型:Tbase 存储

  8. 集群

  9. 计算高性能

  10. 任务分配:负载均衡

  11. 存储高性能

  12. 任务分解:对象存储


看朋友圈高性能分析

  1. 单机

  2. 计算高性能

  3. 进程模型:多进程 C/C++进程模型

  4. 网络模型:Reactor

  5. 缓存模型:Redis 缓存浏览记录

  6. 存储高性能

  7. 存储模型:不涉及

  8. 集群

  9. 计算高性能

  10. 任务分配:负载均衡

  11. 存储高性能

  12. 任务分配:不涉及


整体架构

  1. 集群

  2. 计算高性能

  3. 任务分配:5 机房,国内分南北,国外分欧、美、亚非地区

  4. 任务分解:无需拆分

  5. 存储高性能

  6. 任务分配:5 机房,国内分南北,国外分欧、美、亚非地区

  7. 任务分解:发朋友圈,点评数据分开存储


单机房示意图


发布于: 4 小时前阅读数: 6
用户头像

一雄

关注

还未添加个人签名 2020.03.05 加入

还未添加个人简介

评论

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