架构实战营|模块 2
一、微信朋友圈复杂度分析
业务复杂度:朋友圈的业务复杂度比较低,只有发布、查看、评论和点赞等内容。
质量复杂度:在 2021 年微信公开课上,创始人张小龙公布了朋友圈的用户数据,每天有 7.8 亿用户进入朋友圈,1.2 亿用户发表朋友圈,有 2 亿以上用户设置朋友圈仅三天可见。每 10 个好友,每天只剩 1 个人在朋友圈出现,6 亿人只看不发。
剔除休息时间,按 1 天 16 小时计算,大概是每秒发布 2000 条朋友圈消息,峰值数据预计为每秒 10000 条。查看数为发表的 6 倍,即 QPS 约为 60000,预估 50%的查看进行点赞 10%进行评论,点赞的 TPS 为 30000,评论的 TPS 为 6000。
二、微信朋友圈高性能架构方案
朋友圈的并发写入量非常大,使用消息队列可以将朋友圈的写入操作变为异步操作,提高响应性。朋友圈是基于朋友关系而建立的,其本身的存储应当基于关系数据库模型,但是针对每个用户的朋友圈消息流,可以预先对其进行异步计算,然后存储到 Redis 缓存中,同时用户本地客户端本地缓存。点赞和评论的写入量高于朋友圈发布量,且要求及时看到发布效果,因此选择使用 Redis 存储点赞和评论数据。
评论