写点什么

架构训练营模块二作业

用户头像
河马先生
关注
发布于: 3 小时前

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


1. 朋友圈复杂度分析

  • 业务复杂度分析

朋友圈业务功能:发朋友圈,看朋友圈,评论和点赞

看朋友圈要求是好友才可看,频率和点赞也要求相互好友才可看

微信还有有 5000 的上限,也对业务做了一定的限制

业务功能相对简单,不涉及到其他太多需要依赖和交互业务,业务复杂度低


  • 质量复杂度分析

参考 2021 年 1 月 19 日在微信公开课 Pro 直播演讲中数据,每天有 10.9 亿人打开微信,3.3 亿人进行视频通话,7.8 亿人进入朋友圈,1.2 亿人发朋友圈,朋友圈每天有 1 亿条视频内容,3.6 亿公众号,4 亿用户使用小程序。每天有 3.6 亿人进入公众号,4 亿用户使用小程序。

7.8 亿人进入朋友圈,1.2 亿人发朋友圈

假设:每人每天进入朋友圈 10 次, 每天发布 2 次,来计算看朋友圈和发朋友圈的性能指标,考虑到动作不是均匀分布的,在均值的基础上 * 10 来评估峰值 TPS 和 QPS

发:3000 TPS * 10 = 30000 TPS

看:90000 * 10 = 900000 QPS

朋友圈数据个人资损低,可容忍延迟和数据丢失,对数据一致性要求不高,对性能和存储要求复杂度较高


2. 朋友圈高性能架构方案分析

  • 发朋友圈高性能方案

  • 使用 redis 存储接受方的 timeline 列表,用于未拉取通知

  • 发布的图片和视频需要使用分布式文件存储,后续和 CDN 结合,进行图片和视频的展示

  • 看朋友圈高性能方案

  • CDN + 文件存储来进行图片和视频的展示

  • 使用 redis 存储接受方的 timeline 列表,通过 timeline 列表获取朋友圈动态数据


  1. 朋友圈总体高性能架构设计

  • 朋友圈应用服务器集群,上层接入应用负载均衡设备

  • 朋友圈动态数据使用分库分表存储,高性能上可使用读写分离

  • 个人朋友圈的 timeline 使用 Redis Cluster 存储

  • 图片和视频服务器使用文件存储服务器存储,并结合 CDN 加速访问


用户头像

河马先生

关注

还未添加个人签名 2019.04.16 加入

还未添加个人简介

评论

发布
暂无评论
架构训练营模块二作业