架构训练营 - 模块四
1、性能估算
• 题库存储空间(保存 10 年):1000(学校) * 100(课程)* 2(考试次数)* 10(年) * 5KB(试卷)=10G
•考试结果存储空间:1000 万 * 20(课)* 2(考试次数) * 1KB(答案)* 2(学期) * 3(只有前三年考试)= 2.4T。
• 请求试卷:1000 万 * 20(课)/ 20(周末不考试) / 4(每天 4 堂考试)/ 1 分钟 = 250 万请求/分钟 ≈ 5 万/每秒。
• 提交试卷: 1000 万 * 20(课)/ 20(周末不考试) / 4(每天 4 堂考试)/ 30 分钟 = 1700/每秒。
2、数据结构设计
2.1、老师录入题库
采用 String 数据结构
Key: 学校 ID + 题目 ID
Value: 题目 JSON
2.2、老师从题库里选择题目,然后创建试卷
采用 String 结构,value 为题目内容
Key: 学校 ID + 试卷 ID
Value:试卷内容 JSON
2.3、考试系统前端页面拉取试卷
通过 get 获取指定试卷内容 JSON
2.4、学生提交试卷
采用 Hash 结构
Key:学校 ID +学生 ID
Field:试卷 ID
Value:答案 JSON
2.5、老师批改试卷
采用 Hash 结构
Key:学校 ID +学生 ID
Field:试卷 ID
Value:批改结果 &成绩
2.6、学生查看考试成绩
通过学校 ID +学生 ID,即可查询到指定学生的成绩
3、集群的服务器数量和性能
采用五哨兵,单 redis 实例 64GB 内存,40 个分片,每个分片 1 主 1 从。
评论