写点什么

模块 2 作业 微信朋友圈高性能复杂度

用户头像
TH
关注
发布于: 2021 年 05 月 08 日

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


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

朋友圈业务指标


根据https://www.ithome.com/0/530/979.htm中的最新数据,当前微信朋友圈的日活用户数达到 7.8 亿,每天有 1.2 亿人发朋友圈。

朋友圈高性能复杂度分析

微信的活跃用户数非常多,朋友圈的并发访问量极大,且在节假日尤其是春节期间峰值流量会达到平时的 2 倍以上。根据最新数据可以计算出,微信朋友圈的访问峰值流量为 7.8 亿/864002=1.8 万 QPS,而发布峰值流量则为 1.2 亿/864002=2777TPS。


朋友圈的点赞评论发布频率通常高于朋友圈本身内容的发布频率,假设每条朋友圈平均会带来 10 个点赞或评论,则点赞评论的发布峰值流量约为 2.77 万 TPS。


朋友圈高性能架构方案




架构方案设计理由

  1. 朋友圈的并发写入量非常大,使用消息队列可以应对峰值请求量过大时发生阻塞,朋友圈整体业务的实时性和一致性要求并不高,借助消息队列可以将朋友圈的写入操作变为异步操作,提高响应性。

  2. 朋友圈是基于朋友关系而建立的,其本身的存储应当基于关系数据库模型,但是针对每个用户的朋友圈消息流,可以预先对其进行异步计算,然后存储到 Redis 缓存中,甚至直接推送到客户端,加速用户浏览朋友圈时的性能。

  3. 点赞和评论的写入量高于朋友圈发布量,且要求及时看到发布效果,因此选择使用 Redis 存储点赞和评论数据。

发布于: 2021 年 05 月 08 日阅读数: 57
用户头像

TH

关注

还未添加个人签名 2018.02.13 加入

还未添加个人简介

评论

发布
暂无评论
模块2作业 微信朋友圈高性能复杂度