【架构实战营】模块四作业
千万级学生管理系统的考试试卷存储方案
1.考试试卷存储性能需求估算
在校学生考试结果存储:2.4T;
离校学生考试结果存储:每年增长 0.6T;
试卷请求 QPS:5 万/s;
提交试卷 TPS:1700/s。
2. 选择存储系统
3. Redis 存储方案设计
(1)数据结构设计
由于考试的试卷存储量相对较少,且没有更新等操作,所以考虑使用 String 结构就可以满足。
Key:学校 ID:课程 ID:考试 ID
Value:试卷格式为 Json,转为 String 进行存储
(2)读写分析
老师编写完试卷之后,以学校 ID:课程 ID:考试 ID 为 key 写入到 redis 中。
学生开始考试后,系统读取对应 key 的 value,获取试卷信息。
4. 读写流程
(1)老师先出试卷,可以复用 Hbase,存储在 Hbase 中
(2)试卷同步到 redis 集群当中,增加读取性能
(3)考试过程中,学生读取试卷,可以访问不同的 redis 节点
(4)学生将试卷答案存到 redis 当中,以保证比较高的 TPS
(5)最终把 redis 中的试卷答案存入 Hbase 中落地
计算 Redis sentinel 集群的服务器数量和性能
试卷请求为 5 万 QPS,一般单台 redis 的性能为 5W-10W(QPS),而 Redis sentinel 模式可以保证高可用,一般最少为 3 节点,所以 Redis sentinel 集群采用 3 台服务器,1 主 2 备。
评论