写点什么

学生管理系统考试试卷存储方案

用户头像
Simon
关注
发布于: 2021 年 05 月 15 日

-- 架构训练营模块四作业


存储性能估算

  • 用户量预估:

  • 学生数量 1000W

  • 用户行为建模:

  • 考试试卷的上传(由老师上传,并没有大的并发量)

  • 学生考试试卷的读取

  • 性能估算:

  • 基础数据(一学期):

  • 20 门机考课

  • 考试内容:20 判断题、20 选择题、4 道大题

  • 访问数据预估:

  • 试卷上传:请求量小,可忽略

  • 请求试卷:1000W * 20(课)/ 20(天, 考试时间小于 22 天)/4(每天 4 堂课)/60(秒,都是第一分钟开始查找试卷) = 5 万/秒 【QPS:5W】

  • 存储数据预估每年:

  • 1000w/100(每个学校每个专业 100 人) * 20(课) *2(次考试)*2(2 学期)*1M(试卷大小)= 8 T

存储系统选择

  • 试卷读取,是读多写少的业务场景,而且读取的并发量非常大,业务要求高可用非常高


  • 采用 Redis Sentinel 方案(分片集群)

存储方案设计

1. Redis 存储数据结构设计:
  • 1. 学生进入考试系统,进入当前考场时,会查询到试卷 ID(这部分内容试卷部分暂不设计)

  • 2. 试卷数据结构:

Key:试卷 ID

Value:试卷内容

采用 string 类型的 redis 数据结构

2. 读写流程:
  • 当存储试卷是,如果试卷 ID 已经存在,直接采用覆盖方式,如果不存在就增加

  • 读取采用 key 读取方式,性能最高

  • 试卷有效期设置为一年,一年后将试卷迁移到冷存储数据中

3. Redis 集群机器数量估算:

预估使用 6 台机器:

  • 1 Master

  • 2 Slaver

  • 3 Sentinel

用户头像

Simon

关注

还未添加个人签名 2018.08.11 加入

还未添加个人简介

评论

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