架构实战营模块二作业
作业
复制代码
答
高性能复杂度分析
截至 2018 年底,微信及 WeChat 的合并月活跃账户数增至约 10.98 亿。微信进一步提高了低线城市的渗透率,覆盖更广泛的用户年龄层。每天平均有超过 7.5 亿微信用户阅读朋友圈的发帖
发圈:如果每人每天平均发圈 3 条,7.5 亿人中有 3 亿人发,除去睡觉的 8 小时,平均的 TPS 是 1.5 万左右,当然如果是特殊节日或特殊时刻,TPS 可能会翻倍增长,考虑峰值 TPS 是 3 万
查看:如果每条朋友圈平均有 50 人查看,7.5 亿人查看,平均 QPS 是 200 万左右,如果是特殊节日或特殊时刻,QPS 可能会翻倍增长,考虑峰值是 400 万
评论:如果每条朋友圈平均有 5 人评论,峰值考虑 TPS 是 3 亿*3 条圈*5 人评论/(8*60*60)大概 TPS 是 15 万左右
点赞:如果每条朋友圈平均有 10 人点赞,峰值考虑 TPS 是 3 亿*3 条圈*10 人点赞/(8*60*60)大概 TPS 是 30 万左右
存储:按照上面发圈的数量,每天产生的数据是 T 级别的,存储压力高
设计套路
设计关键点
每天产生的朋友圈数据很大,估算为 T 级别,且数据是全都要保留的,且实时性要求不高,使用廉价的 MySQL 集群是可以应对持久化要求(视频、图片另外存储)
每天浏览最近几天的朋友圈的 QPS 很高,使用 Redis 分片集群缓存最近几天朋友圈数据应对高 QPS 压力
评论