分析一下微信朋友圈的高性能复杂度
【作业要求】
- 对照模块2讲述的复杂度分析方法,分析微信朋友圈的复杂度。
- 针对各个复杂度,画出你的架构设计方案(无需做备选方案,只需要最终的方案即可)。
- 给出你的架构方案中关键的设计理由。
- 3~5页 PPT 即可,涵盖复杂度分析、架构设计、设计理由。
【提示】
1. 分析过程可以参考模块2第5课的实战案例,但是不需要将分析过程一一列举出来。
2. 如果某个地方被卡主了,请及时联系助教或者老师讨论。
设计考虑:
- 采用Nginx做负载均衡。
- 用sharding-JDBC做个人动态的分库分表的方式记录个人发布的动态信息,适应计算高性能的要求。
- 使用异步Fanout的方式将个人朋友圈的时间线进行更新,适应计算高性能的要求。
- 用sharding-MangoDB来更新评论。适应计算高性能的要求。由于评论不断更新,MangoDB适合将各个评论集合在一起,更新和访问的效率比关系数据库好。
- 采用CDN来加速图片和视频信息的更新和访问,适应存储高性能的要求。