模块 2 作业
通过网络查询到的信息:2021 微信公开课 PRO 在广州举办,根据微信事业群总裁张小龙披露目前每天有 10.9 亿用户打开微信,3.3 亿用户进行了视频通话;有 7.8 亿用户进入朋友圈,其中有 1.2 亿用户发表朋友圈。
一》朋友圈高性能复杂度分析
1>假设每人一天发一条朋友圈,16 小时中发消息,TPS=1.2 亿/(16*3600)=2083,考虑到情人节或者除夕晚上 12 点等特殊时点,发朋友圈会突然增加,假设比平时高出 10 倍,那么 TPS=2 万
2>设同时评论 &点赞的人数为 5 个
3>朋友圈中,同时查看发出这条消息的人有 10 个
朋友圈复杂度分析
二》朋友圈高性能方案
高性能方案
三》朋友圈架构
朋友圈架构
四》设计理由
1》朋友圈的并发写入量大,使用消息队列可以应对峰值请求量过大时发生阻塞;
朋友圈是基于朋友关系而建立的,其本身的存储应当基于关系数据库模型,但是针对每个用户的朋友圈消息流,有视频、图片等,这些可以预先对用户 ID 进行运算,采用文档型数据库,如 mongodb 进行存储,同时采用 Kafka 缓存,将消息推送到手机。
2》点赞和评论要求及时看到发布效果,因此选择使用 kafka 缓存点赞和评论数据,也有利于提高别人查看速度。
3》查看朋友圈,需要本地缓存,再加上服务端的 kafka,构成双缓存,有利于提高查询命中率。
评论