写点什么

架构实战 - 模块 2 作业

作者:mm
  • 2022-12-11
    北京
  • 本文字数:722 字

    阅读完需:约 2 分钟

具体要求


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


【作业要求】

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

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

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

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


朋友圈业务复杂度


  1. 质量复杂度不高:不涉及银行等业务,属于社交类,不需要那么高的可用性

  2. 业务复杂度高:面向终端用户,相对来说业务复杂度高一些


朋友圈高性能业务分析


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


  • 看朋友圈:每天 7.8 亿人进入朋友圈,假设平均每人进入 3 次,则为 24 亿次,假设这 24 亿次都发生在白天的 12 个小时,QPS 大概在 5 万。

  • 发朋友圈:每天 1.2 亿人发朋友圈,假设每人发 2 条,一天有 2.4 亿条朋友圈,假设这 2.4 亿条都发生在白天的 12 个小时,TPS 大概在 5K。

  • 评论:假设一条朋友圈有五人评论,TPS 大概在 2.5 万。

  • 视频:每天 1 亿条视频,假设都发生在白天的 12 小时,TPS 大概在 2.8K


朋友圈高性能整体架构



朋友圈整体架构图



朋友圈架构方案关键设计理由


  1. 微信朋友圈面向公众,所以采用集群部署方式多机房部署确保服务可用性

  2. 将视频服务从朋友圈服务分离出来,减少服务复杂性,分配专业的人做专业的业务

  3. 采用 Jedis 缓存集群确保朋友圈相册和时间线读取高性能

  4. 采用 MySQL Sharing 分片存储,确保数据写入高性能

  5. 共享 Nginx 服务进行负载均衡,弹性扩缩容,降低成本


用户头像

mm

关注

还未添加个人签名 2018-08-21 加入

还未添加个人简介

评论

发布
暂无评论
架构实战 - 模块 2 作业_微信朋友圈_mm_InfoQ写作社区