写点什么

千万级学生管理系统的考试试卷存储方案

用户头像
Sky
关注
发布于: 刚刚

试卷大小(按 PPT 中假设):

  1. 每门考试的答案 20 判断题、20 选择题、4 道大题:假设判断题 50 字。选择题题目 50 字,选项平均 20 字,四个选项。大题平均每道题题目 200 字。一份试卷=50*20+130*20+4*200=4400 字。假设以 UTF8 存储,每份试卷大小约=4400*3/1000=13.2k。

redis 存储大小:

  1. ppt 中假设 1000 万学生,每年离校四分之一,既 250 万学生毕业。

  2. 平均每所大学学生人数 1 万 5,每个年级大约 4000,每所学校平均 40 个专业,平均每个专业 100 人。

  3. 假设每门学科每年 2 次考试,每个学生平均一学期 20 门课。

  4. 试卷数量=1000 万/100*20=200 万试卷

  5. 试卷大小=2000000*13.2k 约=26.4G。


QPS 分析:

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

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


redis 存储方案

  1. 可使用 list 存储,可逐题读取。

  2. 试卷总大小为 26.4G,考虑文本可压缩,32G 的内存即可满足。

  3. 这里选择 3 台 4C32G 的机器来部署 Redis 主从,3 台 2C4G 的机器来部署 redis sentinel。

  4. 如果 5 万/s,网络流量=5 万*13.2k=660M,可以设计为逐题请求,做完一题请求下一题。或者先请求一题后异步预加载。避免影响考试。

发布于: 刚刚阅读数: 2
用户头像

Sky

关注

还未添加个人签名 2020.08.17 加入

还未添加个人简介

评论

发布
暂无评论
千万级学生管理系统的考试试卷存储方案