【架构设计模块二】:微信朋友圈的高性能复杂度
要求
对照模块 2 讲述的复杂度分析方法,分析微信朋友圈的复杂度。
针对各个复杂度,画出架构设计方案。
给出架构设计方案中关键的设计理由。
3-5 页 ppt,涵盖复杂度分析、架构设计、设计理由。
复杂度分析
总体分析
写:发朋友圈
读:获取朋友圈、最新朋友圈提示、上次阅读位置
写:评论、回复评论、点赞、评论 & 点赞次数
读:阅读评论、点赞
处于业务复杂度低、质量复杂度高的位置
高性能复杂度分析
来源消息:2021 年 1 月 21 日,微信迎来上线十周年。
在此前两天举行的微信公开课活动上,微信公布了最新数据:微信的日活跃用户达到 10.9 亿;有 7.8 亿人每天翻看着朋友圈,其中的 1.2 亿人还会在朋友圈里发点什么;3.6 亿人每天浏览公众号来获取对外界的认知
NOTE:QPS 按照 2-8 原则
朋友圈:
发朋友圈:1.2 * 108 => (1.2 * 108* 0.8) / (0.2 * 24 * 60 * 60) = 5555 QPS
看朋友圈(平均每天看 2 次,每次看 20 条 => 2 批):2 * 2 * 8 * 108 => 148000 QPS
点赞/评论(每个朋友圈平均点赞/评论 40 个):40 * 1.2 * 108 = 1.2 * 109 => 222220 QPS
看点赞/评论(和朋友圈类似):148000 QPS
架构设计
关键理由
每个用户单独存储朋友圈列表:
为保障朋友圈拉取数据,在发布朋友圈时,会往【可见的朋友】处写此条朋友圈
缓存上次读的位置:
展示上次阅读的位置
写最新朋友圈消息:
提示朋友圈有变化
缓存未读的点赞 & 评论个数:
每次有新评论 & 点赞进行累加
阅读完后重置
整体架构
这里省略分析过程,直接输出复杂度分析结果:
整体架构图
版权声明: 本文为 InfoQ 作者【Ryoma】的原创文章。
原文链接:【http://xie.infoq.cn/article/2e713f773f152ac24b3416ab4】。文章转载请联系作者。
评论