写点什么

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

作者:Sindorei
  • 2021 年 12 月 16 日
  • 本文字数:798 字

    阅读完需:约 3 分钟

总体复杂度分析

朋友圈主要包含发布朋友圈,浏览朋友圈,评论,点赞功能,属于质量复杂度要求高,业务复杂度低。

高性能业务指标

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


高性能复杂度分析


  • 发朋友圈:1.2 亿人发朋友圈,每天有 1 亿条视频内容,假设一天有 3 亿条朋友圈内容,估算为 5k TPS,考虑到发朋友圈主要集中在早上和晚上,将其性能估算为 1.5w TPS。

  • 看朋友圈:7.8 亿人进入朋友圈,假设平均每人每天进入 5 次,则为 39 亿次,平均每秒 4.5w QPS,考虑到朋友圈浏览高峰期为白天,将其性能估算为 7w QPS。

  • 点赞:假设浏览人次中,有三分之二的人都会点赞,每秒 4.5w * 2 / 3 = 3w TPS,考虑到朋友圈浏览高峰期为白天,将其性能估算为 5w TPS。

  • 评论:假设浏览人次中,有三分之一的人会评论,每秒 4.5w * 1 / 3=1.5w TPS,考虑到朋友圈浏览高峰期为白天,将其性能估算为 3w TPS。


架构设计方案

发朋友圈

  • 方案:

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

  • 发布的朋友圈数据存储到关系型数据库

  • 图片、视频等文件存入 OBS 服务器中

  • 高性能方案


  • 架构图

看朋友圈

  • 方案:

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

  • 朋友圈信息缓存到 Redis 中

  • 图片、视频等文件采用分布式文件服务分流,缓解应用服务器压力

  • 高性能方案


  • 架构图

点赞

  • 方案:

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

  • 点赞信息存储到 Redis Dict 中

  • 高性能方案


  • 架构图

评论

  • 方案:

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

  • 点赞信息存储到 Redis Dict 中

  • 高性能方案


  • 架构图

整体架构

  • 方案:

  • 朋友圈每天的访问量和写入数据量庞大,因此需要采用多机房部署

  • 由于发布朋友圈、评论、点赞和查看操作可能聚集在某些时间段内,因此可以先把数据写入缓存中,等并发量不是太大时,再将数据落盘。

  • 高性能方案


  • 架构图


用户头像

Sindorei

关注

还未添加个人签名 2021.11.22 加入

还未添加个人简介

评论

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