写点什么

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

作者:Pengfei
  • 2022 年 6 月 19 日
  • 本文字数:561 字

    阅读完需:约 2 分钟

一、业务诉求

对于各个学校的考试试卷进行存储,完成录入、读取和写入的需求。

 

二、千万级学生管理系统数据估计情况

1.    在校学生考试结果存储:2.4T;

2.    离校学生考试结果存储:每年增长 0.6T;

3.    试卷请求 QPS:5W/s;

4.    提交试卷 TPS:1700/s。

 

三、数据结构选型

考试试卷存储量少但并发量高,基于 Redis 中数据结构有 5 种:String、List、Hash、Set、Sorted Set(zset),可以采用 Hash 数据结构存储。

Key 设计:学校 ID + 学号 ID + 考试 ID

 

四、读写流程读写流程

1.     出题:存储到 MySQL 中,选择主备架构即可;

2.     同步及预热处理:MySQL 的试卷同步到 Redis 集群当中,提高读取性能;

3.     读取试卷:学生考试过程中,可以访问不同的 Redis 节点获取试卷;

4.     保存答案:学生试题答案存到 Redis 当中,以保证 TPS;

5.   数据落盘,最终把 Redis 中试题答案,存入到 HBase 当中,选择 HBase 主要考虑到,试题存储量较大,且每年递增。

 

五、Redis sentinel 集群的服务数量和性能计算

试卷请求 QPS:5W/S,一般单台 Redis 的性能为 5W-10W(QPS)之间,所以单台 Redis 即可。但为了保证高可用,可以部署 1 主 2 从,3 个节点。

采用 Redis sentinel 监控主节点,sentinel 需要部署为单数,最少部署 3 个节点,以防止脑裂问题。为节省机器,sentinel 可以分别与读写节点部署在一起。

用户头像

Pengfei

关注

还未添加个人签名 2017.10.17 加入

还未添加个人简介

评论

发布
暂无评论
千万级学生管理系统考试试卷存储方案_Pengfei_InfoQ写作社区