架构实战营模块二作业 - 分析微信朋友圈的高性能复杂度
微信朋友圈复杂度分析
微信朋友圈的主要功能有:发表,浏览,评论/赞。主要逻辑如下:
1、A 用户发表一条信息到朋友圈(文字/图片)
2、A 用户的好友刷朋友圈时可以看到该信息
3、A 用户及好友可以针对该信息评论或点赞并且可以看到双方共同好友针对该信息的的评论或赞
截止 2015 年,微信每月活跃用户有 5 亿+,朋友圈每天的发表量(包括赞和评论)超过 10 亿,浏览量超过 100 亿。所以朋友圈复杂度主要体现在质量复杂度,并且主要体现在高性能上(朋友圈业务在微信业务中的优先级偏低)。
因此微信朋友圈属于业务复杂度低但质量复杂度高的业务。
下面是 TPS/QPS 峰值分析:
高性能架构分析-发表
高性能架构分析-浏览
高性能架构分析-评论/赞
高性能架构分析-整体架构
优化分析
发表朋友圈后,存储发表记录后,可以异步更新好友时间线。
MongoDB 划分冷热数据,半年内数据为热数据。热数据在内存中,冷数据在磁盘中。
对于热点用户(好友非常多的用户,比如大于 1000 好友),可以根据发表 ID 抓取数据(消息,评论)组装后,存储到 Redis 缓存中。
评论