架构实战营第 4 期 -- 模块二作业
微信朋友圈高性能复杂度
作业要求
对照模块二讲述的复杂度分析方法,分析微信朋友圈的复杂度
针对各个复杂度,画出你的架构设计方案(无需做备选方案,只需要最终的方案即可)
给出你的架构方案中关键的设计理由
3~5 页 PPT 即可,涵盖复杂度分析、架构设计、设计理由
PPT











设计理由
此次微信朋友圈的高性能复杂分析,参考模块二第 5 课完成。
理由如下:
除去金融交易、和具体的算法实现的部分,二者其他业务场景有相似之处;
朋友圈发动态,可以类比微信群发红包;动态展现的范围,正如红包仅限于该群之中;
朋友圈评论点赞,类比微信群抢红包;n 条评论点赞对应 1 条动态,n 次抢红包对应 1 个红包;
所以二者高性能架构有相似之处,除了细微处有区别:
朋友圈动态支持图片/视频,此类数据不适合用数据库存储,所以采用存放于 CDN,而数据库表里保存图片 URL;
评论点赞 TPS 要求较发动态高得多,但是不需要较高的一致性,可以使用 Redis 做优化;另外,此类数据仍需要落地,所以采用定时任务将 Redis 中的数据同步到数据库。
动态、评论数据按用户 ID 进行分库分表,避免跨库跨机房查询。
评论