微信朋友圈的高性能复杂度
作业
分析微信朋友圈的高性能复杂度
一、微信朋友圈复杂度分析
微信朋友圈业务包含:
发布朋友圈消息
评论
回复
点赞
广告
业务相对简单,微信日活跃用户超过 2 亿,对于微信朋友圈的质量负载要求比较高,经分析,负载度在左上区间
二、微信朋友圈高性能业务指标
背景
2021-01-19,张小龙在演讲中表示,每天有 10.9 亿用户打开微信,3.3 亿用户进行了视频通话;有 7.8 亿用户进入朋友圈,1.2 亿用户发表朋友圈,其中照片 6.7 亿张,短视频 1 亿条;
峰值预估
三、微信朋友圈高性能复杂度分析
高性能:每天有 7.8 亿用户进入朋友圈,在高峰时段估峰值在千万级,并发量较大,对性能有一定的要求(在微信现有的技术体系下,主要考虑集群高性能)。
高可用:作为一款社交娱乐产品,短暂的读不可用容忍度高;但用户数据不能丢失,需要保障数据高可用。
可扩展:朋友圈业务相对比较简单,主要围绕帖子发布,点赞与评论,扩展性这块可以先不考虑。
成本和安全:微信作为主流社交产品,成本这块不会是瓶颈;安全这块由于涉及到用户数据,需要考虑朋友圈个人隐私保护,采用数据加密及产品解决方案。
四、微信朋友圈架构图
五、微信朋友圈架构设计理由
朋友圈的质量复杂度高,业务复杂度低
朋友圈计算高性能可适用已有的网络模型、进程模型、缓存模型
朋友圈存储模型选用 MySQL 集群,通过 Sharding-JDBC 分库分表
朋友圈架构设计增加弹性扩缩容
朋友圈业务逻辑不拆分服务,发表、点赞、评论数据需要分库分表
朋友圈中绝大部分是照片或视频,需要文件服务器进行存储(选用 Hbase 集群)
利用 redis 集群存储点赞以及评论,提高性能
评论