模块二作业分析微信朋友圈高性能复杂度
复杂度分析
参考文章:
https://www.ithome.com/0/530/979.htm
https://www.prnasia.com/blog/archives/17801
结合文章分析:日发送朋友圈 1.2 亿次,日浏览 7.8 亿次,
QPS 分析,百分 80 集中在高峰期在 7 点,10 点,17 点,20 点,假设每次刷朋友全半个小时,高峰期 QPS 预估:7.8 亿*0.8/(4*60*60)=9w/s。
TPS 分析,因为发朋友圈和个人当时情感有关预估一天下来可能发送的时间比较平均不太会有峰值发送的情况,根据 28 原则假设百分 80 发朋友圈集中在白天的十个小时中,预估发朋友圈 TPS 为:1.2 亿*0.8/(10*60*60)=4000/s。
点赞评论分析,因为找不到评论点赞的相关数据,结合自己的朋友圈来看,点赞评论的频率较低应该是远低于发朋友圈朋友圈的峰值性能,这里忽略。
综上,微信朋友圈高性能复杂度体现在看朋友圈。
架构设计理由
综合复杂度分析,查看朋友圈的 QPS9w/s,因为朋友圈属于个人内容,朋友圈的查询依据时间和个人查询的结果都不相同,所以使用集中缓存,缓存这些数据的意义不大,只会增加无用的开销,参考微信的做法是在客户的进行缓存了相关的朋友圈数据。依据朋友圈发送的复杂度分析,TPS4000/s,所以在 9w/sQPS 的查询中,很大部分返回的都是空数据。所以做了如下的架构设计。
评论