第二模块作业
微信朋友圈高性能业务指标
新闻信息搜集
微信朋友圈数据
微信最新数据:每天有10.9亿人打开微信,7.8亿人进入朋友圈
在微信公开课 Pro 直播演讲中,微信创始人张小龙披露微信最新数据:每天有 10.9 亿人打开微信,3.3 亿人进行视频通话,7.8 亿人进入朋友圈,1.2 亿人发朋友圈,朋友圈每天有 1 亿条视频内容,3.6 亿公众号,4 亿用户使用小程序。朋友圈每天有 1 亿条视频内容。每天有 3.6 亿人进入公众号,4 亿用户使用小程序。
腾讯最新财报显示,微信月活跃用户突破 12 亿(合并 WeChat),成为中国互联网历史上第一款月活用户突破 10 亿的产品。
关键数据
每天有 7.8 亿人进入朋友圈
1.2 亿人发朋友圈
朋友圈每天有 1 亿条视频内容
数据估算
朋友圈 QPS:7.8 亿/86400 = 0.9 万,TPS:1.2 亿/86400=0.14 万
峰值估算:假设 85%的人都集中在 4 个小时内读和发朋友圈,则
峰值 QPS 约为 0.9*0.85*6 = 4.59 万
峰值 TPS 约为 0.14*0.85*6 = 0.714 万= 7140
评论和点赞(假设平均每条朋友圈有 10 个评论和点赞)峰值约为 7140*10 = 7.14 万
高性能复杂度分析
朋友圈的主要业务有:发朋友圈、读朋友圈、评论和点赞。业务复杂度低。
通过数据分析可以看出朋友圈的质量复杂度高。
所以朋友圈是低业务复杂度、高质量复杂度
朋友圈高性能复杂度应对思路
微信朋友圈所具有的功能
四个核心功能:
一个是发布。发布数据记录了来自所有用户所有的 feed,比如一个用户发布了几张图片,每张图片的 URL 是什么,在 CDN 里的 URL 是什么,它有哪些元属性,谁可以看,谁不可以看等等。
一个是相册。相册是每个用户独立的,记录了该用户所发布的所有内容。
一个是评论。评论就是针对某个具体发布的朋友评论和点赞操作。
一个是时间线。所谓“刷朋友圈”,就是刷时间线,就是一个用户所有朋友的发布内容。
我们再考虑容灾的情况,由于微信朋友圈支持的体量较大,可以设计多个数据中心,每个数据中心内分为多个园区,例如北京,由 A、B、C 三个园区构成,每一个园区带宽同时连接联通、电信,而且容量都有富余,无论任何一个区出现问题,比如 C 区不可用了,那么用户的客户端会自动连接到另外两个区,这两个区有足够的容量承载所有的服务,这种切换是无损的、无感知的。
最后我们的总体架构图如下:
我们从具体业务出发对具体业务进行了分层,在 Feed 流架构下,微信朋友圈结合了 Push 和 Push 的模式。而根据微信朋友圈的业务场景对不同的功能采用不同的异步信息交换方式。
Push 的应用:
Push 可利于实时性的消息传达,如关注朋友圈的动态消息通知,关注页动态消息列表更新;
Pull 的应用:
Pull 可缓解消息服务器存储的压力,如访问个人主页动态列表更新(列表权限更改了,延迟读取更新);
引用:https://blog.csdn.net/u010122604/article/details/114940885
引用 https://www.jianshu.com/p/977404888afd
评论