写点什么

架构实战营 - 模块四作业

用户头像
南山先生
关注
发布于: 刚刚

考试用户行为建模和性能估算

假设有 2000 个学校,平均每个学校 30 门考试课程,每学期 2 次考试。

假设每张试卷 20 道判断题,每题 100 个字;20 道选择题,每题 200 字;4 道大题,每题 200 字。

试卷数量:2000(学校)*30(课)*2(次) = 12 万

每张试卷大致需要存储空间:(20*100 + 20*200 + 4*200)*2Byte ≈ 14KB

每学期试卷所需存储空间:12 万*14KB ≈ 2GB

假设学校的考试都安排在某一个月内,考试的时候请求试卷,提交答案,中间答题过程浏览器本地完成,由于考试集中在上午 4 小时和下午 4 小时, 且请求试卷集中在考试开始的前 1 分钟,提交答案集中在考试结束前的 30 分钟,因此估算如下:

请求试卷:1000 万 * 20(课)/ 20(周末不考试) / 4(每天 4 堂考试)/ 1 分钟 = 250 万请求/分钟 ≈ 5 万/每秒


部署模式

试卷请求 QPS 达到 5 万,按照经验数据,redis 单机支持 QPS:5 万-10 万,可以使用主从复制模式部署,考虑实现故障自动切换,使用哨兵模式部署 redis 集群。

存储结构

使用 Hash 存储试卷

Redis key:学校 ID+年级+课程 ID

Hash key:试卷 ID+题型+题号

Hash value:对应题目

过期时间:学期结束

读写流程

根据 学校 ID+年级+课程 ID 从 Redis 读取整个 Hash 内容。


用户头像

南山先生

关注

还未添加个人签名 2018.10.16 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营-模块四作业