写点什么

模块二 - 微信朋友圈高性能复杂度分析

用户头像
kk
关注
发布于: 1 小时前

业务分析:

腾讯公布的 2020 年度财报中显示,

  1. 微信月活跃用户数为 12.25 亿

2.微信朋友圈日均 1.2 亿用户在朋友圈发表内容。

参考: 微信朋友圈技术之道:三个人的后台团队与每日十亿的发布量 该文中披露的截止于 2015 年第二季度微信朋友圈业务的核心数据:

  1. 微信月活跃用户约 5.49 亿

  2. 朋友圈每天发表量超过 10 亿,浏览量超过 100 亿

  3. 元月份流量达到平时的两倍,峰值达到了平时峰值的 2 倍,相当于平时正常流量的 5 倍。


我们做一个粗略的估算及假设:

1.2020 年微信朋友圈:每天 发表量超过 22.3 亿, 浏览量超过 223 亿。

2.峰值流量相当于平时正常流量的 5 倍。


分析朋友圈的主要工作流程:

1.用户 A 发布内容(包括点赞和评论),上传至网络

2.用户 B 获得有新内容发布的通知(假设 B 为 A 的好友)

3.B 下拉朋友圈时获取到用户 A 的发布内容。


参考文章中给出了设计朋友圈数据的四个核心表:

  1. 发布数据,发布数据记录来自于用户所有的 feed, 比如一个用户发布了几张图片,每张图片的 URL 是什么,在 CDN 中的 URL 是什么,它有哪些元数据,谁可以看,谁不可以看等。

  2. 相册数据,相册时每个用户独立的,记录了该用户发布的所有内容。

  3. 评论数据,评论就是针对某个具体发布的朋友评论和点赞操作。

  4. 时间线,所谓“刷朋友圈“就是刷时间线,就是一个用户所有朋友的发布内容。


1,2 是属于发布用户的核心数据, 3.为评论业务数据 4 是订阅用户的核心数据。

据此我们可以将任务分解为:

  1. 内容发布

  2. 订阅通知

  3. 评论及点赞


总结:

数据实时性要求需求较低。且数据量较大,考虑使用 Mysql 集群存储。

图片及视频需要采用 CDN 服务。

读写流量有十倍差距,考虑将后端服务拆分为 2 个子服务。


设计图如下:


发布于: 1 小时前阅读数: 4
用户头像

kk

关注

还未添加个人签名 2018.12.04 加入

还未添加个人简介

评论

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