写点什么

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

用户头像
刘琦Logan
关注
发布于: 5 小时前

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

【作业要求】

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

针对各个复杂度,画出你的架构设计方案(无需做备选方案,只需要最终的方案即可);

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

3~5 页 PPT 即可,涵盖复杂度分析、架构设计、设计理由。


朋友圈业务数据分析过程

当前微信朋友圈的日活用户数达到 7.8 亿,每天有 1.2 亿人发朋友圈

https://www.ithome.com/0/530/979.htm


朋友圈业务包括发朋友圈,看朋友圈,点赞。以下分析各个业务的峰值流量。

微信朋友圈的平均流量为 7.8 亿/86400s 近似等于 10 万 QPS/s,

假设峰值流量是均值的 10~20 倍(都喜欢在休息时间看朋友圈,时间相当集中在几个固定时段),即 100~200 万 QPS/s , 同理, 发布峰值流量则为 1.2 亿/864002=10~20 万 TPS/s。

在朋友圈点赞或评论只是在看朋友圈的子集,所以峰值流量低于 100TPS。


复杂度分析

考虑到朋友圈的业务复杂度不高,在架构设计时只考虑对质量复杂度影响最大的功能即看朋友圈



设计理由

看朋友圈的并发访问量非常大,需要使用负载均衡分发请求。朋友圈对实时性不高和一致性不高,可以让发朋友圈先写到 redis 缓存里,然后在异步把数据写回非关系性数据库

朋友圈访问时需要看最新的动态,可以直接访问 Redis 存储最新发布的数据。


用户头像

刘琦Logan

关注

还未添加个人签名 2020.10.24 加入

还未添加个人简介

评论

发布
暂无评论
微信朋友圈高性能复杂度分析