写点什么

微信朋友圈 高性能分析

用户头像
return
关注
发布于: 2021 年 04 月 18 日

1 月 19 日晚,在微信公开课 Pro 上,微信创始人张小龙披露微信最新数据:每天有 10.9 亿用户打开微信,3.3 亿用户进行了视频通话;有 7.8 亿用户进入朋友圈,1.2 亿用户发表朋友圈,其中照片 6.7 亿张,短视频 1 亿条;有 3.6 亿用户读公众号文章,4 亿用户使用小程序。


有 7.8 亿用户进入朋友圈,1.2 亿用户发表朋友圈,其中照片 6.7 亿张,短视频 1 亿条;

朋友圈访问还算均衡,不会有秒杀这种峰值, 不过每个人都要睡觉,我们按照 每天 16 小时来算。


读朋友圈 qps = 780000000 / (16*60*60) = 13542

写朋友圈 tps = 120000000 / (16*60*60) = 2083

小文件存储 tps = 670000000 / (16*60*60) = 11632

大文件存储 tps = 100000000 / (16*60*60) = 1736


按照高性能分析步骤如下:


首先要做个任务分解,分解不是因为业务复杂度,而是因为每个模块规模太大,


然后是 发圈的粗略架构图

  • 存储直接使用 redis,redis 也可以持久化,数据本身也不需要关系型数据。 这样不知是否合理?

  • 这里没有考虑 用户好友关系的 存储, 好友关系应该不属于朋友圈管理, 调 好友关系 服务的 api 即可。

  • feed 流 考虑到有的人 好友较多, 推送量大, 这个时候 可以根据亲密度 只推送一部分。

  • 存储考虑的是 文本,图片,视频 全部存对象存储 然后分发到 cdn,redis 只存对象链接。不知是否合理?


然后是看圈的粗略架构图

  • 直接拉去到自己的 时间线流, 流里包含了对象链接。

  • 客户端在依次从 cdn 里 拿到所有的 图文,视频。


整个架构里 其实 比较粗,有的技术点 没有底,还是个人积累太少。

  • 服务器和存储 要多少台才够, 不会算。

  • cdn 这一块 肯定是要用,但是自己缺乏相关知识, 比如 所有 cdn 节点是全部分发还是部分分发,用户从服务器拿到某一个对象链接后 如何找到最近的一个 cdn 节点呢。

  • feed 流的推送 没想清楚如何推送, 仅仅是一个 异步 循环好友 添加 feed 吗。


用户头像

return

关注

还未添加个人签名 2018.05.18 加入

还未添加个人简介

评论

发布
暂无评论
微信朋友圈 高性能分析