写点什么

架构训练营 - 模块二 - 作业

用户头像
姑射仙人
关注
发布于: 1 小时前

流量分析


每天有 7.8 亿人进入朋友圈,1.2 亿人发朋友圈。

  • QPS:按照平均每秒 2 万的查询请求,高峰期按照 5 倍计算,有 10 万的并发量。

  • TPS:按照平均每秒 2000 的插入请求,高峰期按照 5 倍计算,有 1 万的并发量。



复杂度分析


业务复杂度

朋友圈业务包含收发动态,评论、回复、点赞等功能,从业务复杂度上看并没有很高,虽然非金融类业务,但是朋友圈的质量复杂度相对比较高。综上,朋友圈属于业务复杂度低,质量复杂度高的业务。

性能复杂度

朋友圈对于实时性、一致性要求没那么高。允许有一定的延迟,可以考虑最终一致性。不丢数据即可。

存储模型

  1. 朋友圈动态是典型的非修改类的数据,只有插入、删除操作。这类数据挺适合 KV 数据库,LSM 存储模型。

  2. 考虑到动态还有很多非业务类字段,KV 数据库并不合适。考虑可以使用 MongoDB。如果有比较成熟的 Mysql 分片架构,也可以使用 Mysql。

  3. 朋友圈动态数据会在客户端缓存,而且对外很少有大范围的数据检索需求,可以考虑缓存用户一段时间的动态数据到 Redis。

  4. 动态数据和评论数据因数据结构不同,考虑使用不同的存储模型。


朋友圈高性能方案 - 发动态



朋友圈高性能方案 - 收动态



备选方案一



备选方案二



朋友圈 - 评论服务 - 技术架构



用户头像

姑射仙人

关注

还未添加个人签名 2017.10.20 加入

还未添加个人简介

评论

发布
暂无评论
架构训练营 - 模块二 - 作业