写点什么

【架构设计模块二】:微信朋友圈的高性能复杂度

用户头像
Ryoma
关注
发布于: 1 小时前

要求

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

  2. 针对各个复杂度,画出架构设计方案。

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

  4. 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


架构设计

关键理由

  • 每个用户单独存储朋友圈列表:

  • 为保障朋友圈拉取数据,在发布朋友圈时,会往【可见的朋友】处写此条朋友圈

  • 缓存上次读的位置:

  • 展示上次阅读的位置

  • 写最新朋友圈消息:

  • 提示朋友圈有变化

  • 缓存未读的点赞 & 评论个数:

  • 每次有新评论 & 点赞进行累加

  • 阅读完后重置


整体架构

这里省略分析过程,直接输出复杂度分析结果:


整体架构图


发布于: 1 小时前阅读数: 2
用户头像

Ryoma

关注

学如逆水行舟 2018.05.14 加入

一只菜菜的全沾工程师

评论

发布
暂无评论
【架构设计模块二】:微信朋友圈的高性能复杂度