写点什么

极客时间【架构实战营】第二期 模块四作业

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

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

Redis Sentinel 存储方案设计

性能估算

学生总数为 1000 万,假设每学期 20 门课,考试内容为 20 道判断题、20 道选择题、4 道大题(答案 200 字以内),试卷内容所需的存储空间大致为:

20(课程) * 1000(试卷内容)= 20KB

学生提交的答卷由 HBase 集群存储,故此处不考虑。


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

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

提交试卷:1000 万 * 20(课)/20(周末不考试)/4(每天 4 堂考试)/30 分钟 = 1700 请求/秒

数据结构设计

使用 list 数据结构存储试卷数据。

key:课程名称

value:试卷题目内容

读写分析

考试开始时,学生请求试卷内容,读取数据;

考试完成时,学生提交试卷内容,写入数据。


服务器数量和性能

使用 Redis Sentinel 需要至少 3 台服务器组成集群,单机普通配置服务器 redis 读 1KB 数据性能约 5 万 QPS,因此 3 台服务器组成集群即可满足需求。

用户头像

Geek_91606e

关注

还未添加个人签名 2021.07.22 加入

还未添加个人简介

评论

发布
暂无评论
极客时间【架构实战营】第二期 模块四作业