写点什么

微信朋友圈的高性能复杂度

用户头像
伏波
关注
发布于: 4 小时前

1.复杂度分析

微信本身是属于业务复杂度和质量复杂度都很高的系统,但是微信朋友圈的核心业务功能只有发表内容、查看朋友圈、评论、点赞等,业务复杂度并不高,但是质量复杂度会比较高。

在微信公开课 Pro 直播演讲中,微信创始人张小龙披露微信最新数据:每天有 10.9 亿人打开微信,3.3 亿人进行视频通话,7.8 亿人进入朋友圈,1.2 亿人发朋友圈,朋友圈每天有 1 亿条视频内容,3.6 亿公众号,4 亿用户使用小程序。朋友圈每天有 1 亿条视频内容。每天有 3.6 亿人进入公众号,4 亿用户使用小程序。

由于拿不到更为详细的数据,我们可以通过上述的引用数据可以大概的推算出微信朋友圈的平均 TPS 约为 1400,QPS 平均约为 1.1 万,我们再考虑用户使用朋友圈功能在不同时间段的频次是不同的,因此数据大概率是存在很大波动的,因此粗略按照 TPS 和 QPS 均膨胀 2~5 倍来算,TPS 约为千最多为万级,QPS 约为万级最多至十万级。

粒度拆分的更细一些:

2.高性能架构设计方案

2.1 架构设计思路

2.2 朋友圈高性能架构设计方案

发布


发布朋友圈架构


点赞/评论

点赞和评论的架构与发布评论的架构基本类似,但在任务分配器使用 Nginx 进行负载均衡时,可考虑使用 Hash 算法,尽量保证同一个朋友圈内容的评论和点赞数据在相同的服务器上,这样在后续进行聚合查询时,可以提高查询效率。

查看

查看朋友内容时,会可以同时查看到部分的点赞信息和有权限的评论内容,但是不必考虑在刚开始发布朋友圈内容时就将内容和评论等信息就进行缓存。这样反倒会在存储数据时额外产生消耗,并浪费昂贵的缓存资源,并且缓存的数据的命中率并不高。可以考虑在用户发布的内容被首次他人刷新和查看时进行写入缓存。

整体架构


用户头像

伏波

关注

还未添加个人签名 2019.09.27 加入

还未添加个人简介

评论

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