写点什么

[架构实战营][模块二作业]

用户头像
KK_TTN
关注
发布于: 5 小时前

问题

内容

分析微信朋友圈的高性能复杂度

要求

1. 对照模块 2 讲述的复杂度分析方法,分析微信朋友圈的复杂度。

2. 针对各个复杂度,画出你的架构设计方案(无需做备选方案,只需要最终的方案即可)。

3. 给出你的架构方案中关键的设计理由。

4. 3~5 页 PPT 即可,涵盖复杂度分析、架构设计、设计理由


作业

复杂度分析

从架构设计的复杂度来看,微信朋友圈的质量复杂度高,而业务复杂度

质量复杂度 - 高

微信朋友圈作为微信的核心社交功能之一(7.8 亿人每天进朋友圈),在高性能和高可用方面有较高的要求。如果有无法发送、打开朋友圈,评论、点赞等朋友圈功能有延迟等等问题,会严重影响微信大部分用户的体验。

峰值估算

发朋友圈 - 一天 1.5 亿人发朋友圈,假设平均每人一天发 2 条,平均 3.5k tps,峰值预估 10k tps

读朋友圈 - 一天 7.8 亿人读朋友圈,假设平均每人一天刷 10 次,平均 90k rps, 峰值预估 300k qps

业务复杂度 - 低

微信朋友圈的业务比较简单明了,也因【朋友】的特性使得整体的流程比较统一

功能组成上,包括读朋友圈、点赞朋友圈、评论朋友圈、写朋友圈、朋友圈更新提示,流程简单,也不需要微信外部的第三方依赖。

特点上,因为微信朋友上限 5000 人,不存在大 V、爆点等需要区别对待的业务场景,流程统一

架构设计方案

写朋友圈


读朋友圈


设计理由阐述

写朋友圈

写朋友圈(以及评论、点赞等)要求高可用(不能丢失写信息等)、高性能(写完要立马可见等)。设计核心是用高可用的消息队列作为核心,接收到写消息的时候把信息写入数据库,成功后触发通知业务

读朋友圈

读要求没有写要求那么高,如果没有读到最新的朋友圈消息没有非常影响用户体验,所以可以在数据库前面放置缓存用于提升性能

参考

微信最新数据:每天有10.9亿人打开微信,7.8亿人进入朋友圈 - IT之家 (ithome.com)


用户头像

KK_TTN

关注

还未添加个人签名 2018.03.03 加入

还未添加个人简介

评论

发布
暂无评论
[架构实战营][模块二作业]