架构训练营 - 模块二作业
微信朋友圈可扩展/高性能/高可用架构设计
背景信息
2018 年,微信十周年的公开课上,张小龙分享了一组数据:过去十年,每天有 10.9 亿用户打开微信,
3.3 亿用户进行了视频通话;有 7.8 亿用户进入朋友圈,1.2 亿用户发表朋友圈,其中照片 6.7 亿张,短视频 1 亿条;有 3.6 亿用户读公众号文章,4 亿用户使用小程序
复杂度分析
可扩展分层:将朋友圈分为:发朋友圈、看朋友圈、点赞/评论三个模块。
整体架构图
说明
从读/写分离角度出发,分为两个服务:发朋友圈和点/评论(写服务)、看朋友圈(读服务)
高可用:双机房
存储高可用 状态决策采用民主式、复制方式用异步复制,因为这类社交数据,没必要做到强一致性
redis:以用户 id 为 key 缓存朋友关系、动态等内容
mysql:存储数据按照动态、评论、点赞分库分表
版权声明: 本文为 InfoQ 作者【Sam】的原创文章。
原文链接:【http://xie.infoq.cn/article/3e100e9d1c7935ef145fce3ea】。文章转载请联系作者。
评论