写点什么

架构实战营模块二作业

用户头像
maybe
关注
发布于: 5 小时前
架构实战营模块二作业

作业

分析一下微信朋友圈的高性能复杂度
【作业要求】
1.对照模块2讲述的复杂度分析方法,分析微信朋友圈的复杂度。
2.针对各个复杂度,画出你的架构设计方案(无需做备选方案,只需要最终的方案即可)。
3.给出你的架构方案中关键的设计理由。
4.3~5页 PPT 即可,涵盖复杂度分析、架构设计、设计理由。
复制代码

高性能复杂度分析

截至 2018 年底,微信及 WeChat 的合并月活跃账户数增至约 10.98 亿。微信进一步提高了低线城市的渗透率,覆盖更广泛的用户年龄层。每天平均有超过 7.5 亿微信用户阅读朋友圈的发帖


  1. 发圈:如果每人每天平均发圈 3 条,7.5 亿人中有 3 亿人发,除去睡觉的 8 小时,平均的 TPS 是 1.5 万左右,当然如果是特殊节日或特殊时刻,TPS 可能会翻倍增长,考虑峰值 TPS 是 3 万

  2. 查看:如果每条朋友圈平均有 50 人查看,7.5 亿人查看,平均 QPS 是 200 万左右,如果是特殊节日或特殊时刻,QPS 可能会翻倍增长,考虑峰值是 400 万

  3. 评论:如果每条朋友圈平均有 5 人评论,峰值考虑 TPS 是 3 亿*3 条圈*5 人评论/(8*60*60)大概 TPS 是 15 万左右

  4. 点赞:如果每条朋友圈平均有 10 人点赞,峰值考虑 TPS 是 3 亿*3 条圈*10 人点赞/(8*60*60)大概 TPS 是 30 万左右

  5. 存储:按照上面发圈的数量,每天产生的数据是 T 级别的,存储压力高

设计套路


设计关键点

  1. 每天产生的朋友圈数据很大,估算为 T 级别,且数据是全都要保留的,且实时性要求不高,使用廉价的 MySQL 集群是可以应对持久化要求(视频、图片另外存储)

  2. 每天浏览最近几天的朋友圈的 QPS 很高,使用 Redis 分片集群缓存最近几天朋友圈数据应对高 QPS 压力

整体架构


用户头像

maybe

关注

还未添加个人签名 2019.03.25 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营模块二作业