写点什么

架构实战营 模块四作业

用户头像
李晶晶
关注
发布于: 2021 年 05 月 23 日

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

一、需求

基于模块 4 第 6 课的估算结果和 Redis sentinel 的初步方案设计,完善考试试卷存储方案,具体包括:1)完善 Redis 的数据结构设计,明确具体使用哪种 Redis 数据结构

2)设计具体的读写流程(可以文字描述也可以序列图描述,序列图要有文字辅助说明)

3)对照模块 4 第 6 课的性能估算结果,计算 Redis sentinel 集群的服务器数量和性能

二、性能、容量评估

1) 写入性能:各个老师出试卷时间宽裕,写入性能可以忽略不计;

2)读取性能:据课程上评估为 5 万/秒,单台 redis 可支持(单台机器 redis 为 5 万/秒-10 万/秒);

3)容量:根据各个大学的培养来看,大学大约 40 个学院,每个学院约 20 门课程,1000 万学生假设有 200 所大学,每份试卷按照大小为计算,则对应的试卷的存储量为 5KB:

200(学校数)*40(学院数)*20(专业)*2(考试次数/年)*4(考试年数)*5KB(试卷大小)==10G

三、数据结构

redis String 结构,key 为:学校 ID+试卷 ID,value:试卷内容序列化后的 json 字符串。

(说明:试卷 ID 已根据“学科+时间+序列号”命名,有唯一性)

四、部署架构

redis 采用一主一从三哨兵的部署方式。

五、读写过程

1)写入过程:各位出题老师通过 set 操作将序列化后的试卷内容 value 写入到 key 为“学校 ID+试卷 ID”里。

2)读取操作:各位学生通过“学校 ID+试卷 ID”get 到对应的 value 值,反序列化后获取到对应的试卷内容。


用户头像

李晶晶

关注

还未添加个人签名 2018.08.21 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营 模块四作业