写点什么

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

作者:唐诗宋词
  • 2022 年 4 月 10 日
  • 本文字数:847 字

    阅读完需:约 3 分钟

微信朋友圈复杂度总体分析


微信朋友圈高性能业务指标

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

朋友圈高性能复杂度分析

发朋友圈:假设 1.2 亿人每人发 2 条信息,有 90%的是集中在 6 小时内发朋友圈,大概是 1 万 TPS,为了在节日或重大活动日按照 10 倍的估算即:10 万 TPS;

查看朋友圈:假设进入的 7.8 亿人,有 90%的是集中在 6 小时,每人看 10 条朋友圈,大概是 32.5 万 QPS,为了在节日或重大活动日按照 10 倍的估算即:325 万 TPS;

评论:按二八原则估算则:325w*0.8=260w 的 TPS;

点赞:按二八原则估算则:325w*0.8=260w 的 TPS;



朋友圈高性能复杂度应对思路


朋友圈高性能方案- 发朋友圈


发朋友圈架构图


朋友圈高性能方案 - 浏览朋友圈

浏览朋友圈架构图


朋友圈高性能-评论/点赞朋友圈

朋友圈高性能-评论/点赞朋友圈架构图

朋友圈架构设计方案的总结:

1.对于发朋友圈,由于在微信中发的朋友圈的内容有是文字、图片和视频,因此结构性的数据,文字等,用 Redis 集群和关系数据库 Mysql 集群比较合适,对非结构化的数据,图片和视频等数据,索引用 Redis 集群存储,实际的数据存储用对象存储 OSS,OSS 存储有可以离用户最近,上传和下载速度都比较快速,而且图片都已经被处理为各个缩比大小,适合各种前段的使用。

2.对于发朋友圈,由于发朋友圈不是实时的强要求,为了应对重大节日或特殊日子的高峰的并发,使用 Kafka 削峰和缓冲的作用。

3.对于浏览朋友圈,可以根据每个人有好友的数量,预先从 Redis 取出好友最新的前 10 条文字信息和图片、视频的索引,然后从 OSS 取到图片或视频,加载到用户的时间线上,用户浏览文字、图片或视频时,就会秒级别的展现出来。

4.评论/点赞基本和发朋友圈圈一样,只是并发量没有发朋友圈大,点赞的实效性要比发朋友圈强些,但这样的架构远远能达到点赞的实效性,这里就不赘述了。


用户头像

唐诗宋词

关注

还未添加个人签名 2018.02.08 加入

还未添加个人简介

评论

发布
暂无评论
微信朋友圈的高性能复杂度_唐诗宋词_InfoQ写作平台