题目
以朋友圈为例,进行高性能架构设计。
思路
老师在课上已经以红包业务为实例讲解了高性能和高可用架构设计的过程,所以这里也就照猫画虎。基本过程如下所示:
- 定量的业务规模和性能分析
- 典型场景分析和拆分
- 逐个场景进行方案设计和架构设计
- 给出总体的架构设计
业务规模调查
目前得到最为靠谱的业务规模是,张小龙在公开课中提到的数据:
有10.9亿用户打开微信,3.3亿用户进行了视频通话;
有7.8亿用户进入朋友圈,1.2亿用户发表朋友圈,其中照片6.7亿张,短视频1亿条;
有3.6亿用户读公众号文章,4亿用户使用小程序;
性能分析
其中跟题目有关的是第二条。关键数据在于1.2亿人发朋友圈,其中6.7亿照片1亿视频。可以粗略评估每天发布朋友圈的次数在8亿(共1.2人,平均下来每人要发6条?这是有多少人在朋友圈发广告啊)。按照28原则,近似估计其中的80%即6.4亿集中在最高峰的20%时间即4.8小时,那么平均每秒约有3.7万。
估计到峰值为这个数值的10倍,则朋友圈TPS预估为37万,每个人发完后同时有5个人看则QPS为185万。
这个规模远不是单机房,单数据库或单机器能够解决的,因此多机房,服务的负载均衡和数据的分库分表成为了必然。而且其中包含了大量是视频和图片,将占用海量的带宽,因此CDN必然会被引入降低看朋友圈的带宽压力。
另外朋友圈有一个值得关注的特性&#