写点什么

微信朋友圈高性能复杂度分析

用户头像
缘分呐
关注
发布于: 29 分钟前
微信朋友圈高性能复杂度分析

作业要求

分析一下微信朋友圈的高性能复杂度

【作业要求】

  1. 对照模块 2 讲述的复杂度分析方法,分析微信朋友圈的复杂度。

  2. 针对各个复杂度,画出你的架构设计方案(无需做备选方案,只需要最终的方案即可)。

  3. 给出你的架构方案中关键的设计理由。

  4. 3~5 页 PPT 即可,涵盖复杂度分析、架构设计、设计理由。

【提示】

1. 分析过程可以参考模块 2 第 5 课的实战案例,但是不需要将分析过程一一列举出来。2. 如果某个地方被卡主了,请及时联系助教或者老师讨论。

业务指标分析

根据一些公开资料分析:

IT 之家 2021 年 1 月 19 日消息 在微信公开课 Pro 直播演讲中,微信创始人张小龙披露微信最新数据:每天有 10.9 亿人打开微信,3.3 亿人进行视频通话,7.8 亿人进入朋友圈,1.2 亿人发朋友圈,朋友圈每天有 1 亿条视频内容,3.6 亿公众号,4 亿用户使用小程序。每天有 3.6 亿人进入公众号,4 亿用户使用小程序。

IT 之家了解到,腾讯最新财报显示,微信月活跃用户突破 12 亿(合并 WeChat),成为中国互联网历史上第一款月活用户突破 10 亿的产品。


朋友圈高性能复杂度分析

针对以上信息做高性能复杂度分析,如下图所示:

  • 发朋友圈:假设 1.2 亿人在白天 8 小时内发朋友圈,大概是 0.5 万 TPS,为了留住一定的富余在此基础上按照 3 倍的估算即:1.5 万 TPS;

  • 查看朋友圈:假设每个人平均有 50 个朋友查看朋友圈就是:1.5w*50=75w 的 QPS;

  • 评论:因评论的人会比较少,按照查看人数的三分之一去估算则:75w/3=25w 的 TPS;

  • 点赞:一般点赞的人数会比较多一些,按照查看人数的二分之一去估算则是 38wQPS;


业务场景高性能方案分析

发朋友圈高性能方案


发朋友圈架构图

  • 应用服务器采用负载均衡;

  • 发布的朋友圈采用关系型数据库存储;

  • 采用多级缓存,发布同时写入 redis 集群;

  • 图片、视频等文件存入分布式文件服务(例如腾讯云的 COS 服务)

查看朋友圈高性能方案

查看朋友圈架构图

  • 应用服务器采用负载均衡;

  • 采用多级缓存,本地缓存和 redis 缓存未命中时,再到数据库端获取;

  • 图片、视频等文件的访问通过分布式文件服务自带的 DNS、CDN 技术分流流量,减轻应用服务器压力;


点赞/评论高性能方案

因点赞、评论类似所以放在一起分析。

点赞/评论架构图

  • 点赞/评论为了提高响应速度,先将点赞/评论写入 redis 集群中,然后再通过定时任务异步的将这部分数据写入到数据库中;

朋友圈整体架构图

  • 因朋友圈的流量巨大,必须采用多机房部署

  • 另外还可以将点赞、评论先写入 MQ 中间件,达到削峰填谷,平缓流量的目的;

发布于: 29 分钟前阅读数: 4
用户头像

缘分呐

关注

还未添加个人签名 2017.12.12 加入

还未添加个人简介

评论

发布
暂无评论
微信朋友圈高性能复杂度分析