微信朋友圈高性能复杂度分析
分析一下微信朋友圈的高性能复杂度
【作业要求】
对照模块 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 存储最新发布的数据。
评论