架构实战营模块 2- 微信朋友圈高性能架构
设计理由:微信朋友圈的质量复杂度和业务复杂度均为中等,有一定的复杂度,业务比红包复杂一些,涉及到图片与短视频;有一定的并发,但是没有红包的峰值那么集中,朋友圈的峰值与平常的量级在 5-10 倍。
设计理由:发朋友圈与评论的量级相对较少,业务稍微简单,按时间线写入数据库中;浏览朋友圈的并发相对较大,需要从缓存中查询出朋友圈数据,浏览朋友圈的用户更多,是发圈和评论并发的两倍以上。
设计理由:将发朋友圈和评论放在一个服务中,将浏览朋友圈放一个新服务中,两个业务的特性差距较大,分开更利于按特定业务来优化各自服务的性能。
设计理由:
1、双机房保证高性能方案,需要时可以扩容到 3 机房,按地域就近访问南北机房。
2、也可以采用 CDN 和 OSS 对象存储来加速图片和短视频浏览,图片和短视频文件可以采用 FastDFS 或 Hadoop 来存储。
3、发朋友圈时可以采用消息队列 RocketMQ 来应对高峰并发,缓解对数据库的峰值压力。
4、双机房之间数据双向同步。
评论