Bootstrap

模块二作业

微信朋友圈高性能复杂度架构设计

根据微信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.