架构实战营 - 模块二作业
高性能业务指标
高性能复杂度分析
整体分析
平均每天 1.2 亿用户发表朋友圈,假设每人每天发送 2 条朋友圈。每天产生 2.4 亿条朋友圈内容
查看 : 点赞 : 评论 = 100% : 45% : 15% ≈ 6 : 3 : 1
发表朋友圈
二八法则,80%的用户在 20%的时间内发送朋友圈
tps 计算:(1.2 亿 * 2 * 80%)/ (24 * 60 * 60 * 20%) = 9600w / 17280 = 11111 ≈ 1.2w
查看朋友圈
假设每个朋友圈有 30 人查看
qps 计算:1.2w * 30 = 36w
点赞朋友圈
假设每个朋友圈有 15 人点赞
tps 计算:1.2w * 15 = 18w
评论朋友圈
假设每个朋友圈有 5 人评论
tps 计算:1.2w * 5 = 6w
高性能方案分析
整体架构图
方案描述:
采用双机房部署,DNS 做负载均衡
发表和查看属于核心功能,点赞和评论属于非核心功能,因此拆解为两个服务,避免非核心功能影响核心功能。每个服务多个实例提高可用性
Nginx 做路由转发和负载均衡,也可以接入公司现有的网关
针对朋友圈文案及基本信息,由于场景读多写少且可靠性要求高,采用 MySQL 集群存储,并采用分库分表方式
针对朋友圈图片、短视频等非结构化数据,采用 OSS 对象存储
针对点赞、评论的记录信息,由于性能要求高,采用 Redis 集群存储
评论