架构实战营 模块二 作业
分析一下微信朋友圈的高性能复杂度
【作业要求】
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.2*1*10^8/3600/24=1388 TPS (假设每人每天发 1 条朋友圈)
看朋友圈 7.8*8*10^8/3600/24=72222 QPS (假设每人每天看 8 次朋友圈)
点赞/评论 7.8*2*10^8/3600/24=18055 TPS (假设每人每天评论 2 次朋友的评论)
峰值系数为 5
发朋友圈/点赞评论高性能分析
单机
计算高性能
进程模型:多进程 C/C++进程通信
网络模型:Reactor
缓存模型:无
存储高性能
存储模型:Tbase 存储
集群
计算高性能
任务分配:负载均衡
存储高性能
任务分解:对象存储
看朋友圈高性能分析
单机
计算高性能
进程模型:多进程 C/C++进程模型
网络模型:Reactor
缓存模型:Redis 缓存浏览记录
存储高性能
存储模型:不涉及
集群
计算高性能
任务分配:负载均衡
存储高性能
任务分配:不涉及
整体架构
集群
计算高性能
任务分配:5 机房,国内分南北,国外分欧、美、亚非地区
任务分解:无需拆分
存储高性能
任务分配:5 机房,国内分南北,国外分欧、美、亚非地区
任务分解:发朋友圈,点评数据分开存储
单机房示意图
版权声明: 本文为 InfoQ 作者【一雄】的原创文章。
原文链接:【http://xie.infoq.cn/article/6091884a55ac877e035b1a21d】。文章转载请联系作者。
评论