模块二作业
微信朋友圈高性能复杂度架构设计
根据微信2021年披露的数据:
“IT之家 1 月 19 日消息 在微信公开课 Pro 直播演讲中,微信创始人张小龙披露微信最新数据:每天有 1.9 亿人打开微信,3.3 亿人进行视频通话,7.8 亿人进入朋友圈,1.2 亿人发朋友圈,朋友圈每天有 1 亿条视频内容,3.6 亿公众号,4 亿用户使用小程序。朋友圈每天有 1 亿条视频内容。每天有 3.6 亿人进入公众号,4 亿用户使用小程序。”
微信的业务大致包括,发朋友圈,刷朋友圈,评论点赞
微信朋友圈高性能复杂度分析
发朋友圈

算法1
每天1.2亿人发朋友圈,假设没人每天发5条朋友圈,平时峰值流量为
1.2亿*5*0.8/(86400*0.2)=2.8万,元月峰值流量估算为2.8万*5=14万TPS
算法2
每天1.2亿人发朋友圈,元月流量为3.6亿(假设经过6年发展元月流量达到平时的3倍),月份峰值流量为
3.6亿*5*0.8/(86400*0.2)=8.4万TPS
综合来看2021年元月峰值流量为11.2万TPS
刷朋友圈
元月峰值为7.8*11.2万QPS = 87.4万QPS
评论点赞
在元月峰值时刻,有50%的人评论点赞
则刷朋友圈的元月峰值为=43.7TPS

朋友圈近三年存储量估算
21年每天有7.8亿用户进入朋友圈,假设50%的人每天发5个动态,则3年朋友圈存储约为12812亿个动态数据,假设每条动态数据200k,则约有233PB




单机房整体架构

虽然使用微信21年的数据进行分析,有后视偏差,同时在架构设计时需要考虑简单和演进原则
微信性能峰值达到50万TPS,100万QPS,长远来看F5经济可靠
从数据库存储来看,PG集群不一定可用支撑目前的性能要求,但在微信初期支撑业务问题不大,后期可用NOSQL,点赞和评论在业务初期考虑到简单原和演进原则使用PG存储,业务发展后可以将此类数据持久化redis存储或者NOSQL.