模块二作业
复杂度分析
微信朋友圈主要分如下三个模块:发朋友圈、浏览朋友圈、点赞评论。查找今年微信朋友圈的用户使用量相关资料。
张小龙在演讲中表示,每天有 10.9 亿用户打开微信,3.3 亿用户进行了视频通话;有 7.8 亿用户进入朋友圈,1.2 亿用户发表朋友圈,其中照片 6.7 亿张,短视频 1 亿条;有 3.6 亿用户读公众号文章,4 亿用户使用小程序。《微信用户量惊人!每天有10.9亿人打开微信,7.8亿人进入朋友圈》
可以发现朋友圈有亿级的用户规模,业务复杂度低,但质量复杂度高。
架构设计
发朋友圈
发朋友圈数据同时写到数据库服务器集群和 Redis 集群,Redis 对最近的朋友圈数据进行缓存。
浏览朋友圈
浏览朋友圈先读 Redis 缓存的数据,如果缓存没有,再请求数据库集群中的数据。
点赞评论
点赞评论直接往 Redis 写,后异步往数据库集群进行更新。
设计理由
朋友圈属于读多写少的场景,使用 Redis 缓存减轻数据库压力。
根据用户 ID 进行数据分库。
分区域多机房部署,将朋友圈数据缓存到最近机房的 Redis 集群。
图片及视频通过对象存储,通过 CDN 加速。
评论