写点什么

架构实战营:模块四作业

作者:刘璐
  • 2022 年 3 月 06 日
  • 本文字数:507 字

    阅读完需:约 2 分钟

架构实战营:模块四作业

1、试卷存储容量估算

计算前提:1000 万学生,每个学生一个学期考 8 门,每年考 2 次。

空白试卷存储预估

  • 每个学校 2 万个学生,则有 500 个学校,每个学校 100 个专业,每个专业 8 门课,每张试卷 1MB 存储

  • 500 *100*8*2*1M = 780G ,存储需要 1T

学生答卷存储预估

  • 假设每张试卷的存储大小为 500kB,试卷切分存储,则单张存储大小为 500K*2= 1MB ;

  • 每个学年的试卷缓存容量:1000w * 8 * 1M * 2= 16T;

  • 则存储完整四年大学的存储容量为 64T。

结论

(1) 开始考试时,存在突发高并发查询,因此采用 redis 存储空白答卷

(2) 成绩(总成绩、小题成绩、答案)存储到 mysql,便于数据分析;

2、试卷存储数据结构


  • key: 学校 code + 专业 code + 年级 code + 试卷 code

  • value:sorted map

3、试卷读写流程

  • 学生登录管理系统,根据年级及考试安排,选择考试的科目和试卷;

  • 系统根据 key 查询 redis 集群上的试卷内容;

  • 学生答题;

  • 试卷定期自动保存(可保存到本地,也可自动提交到后端存储);

  • 学生提交试卷,答题内容存储到 mysql;


4、redis 集群资源预估

理论上 redis 单机就可以支持 5W-10w/QPS 读取,为了保证高可用,和性能冗余方面的考虑,采用 1 主 2 从 3 哨兵的部署方式,共计需要 6 台服务器,redis 集群单机内存 32G 即可满足需求;

用户头像

刘璐

关注

还未添加个人签名 2018.03.29 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营:模块四作业_刘璐_InfoQ写作平台