架构训练营第 10 期模块四作业
【作业要求】
设计千万级别学生管理系统的考试试卷存储方案
1 完善数据结构设计
2 设计具体的读写流程
3 估算出服务器数量和性能
数据结构设计
考试试卷的数据主要有这么几点业务需求,
考试开始时的读的并发数非常高。
数据写入需求不高, 或者几乎没有。
数据本书存储量也不多。
考虑到这些情况, 采用 redis hash 数据类型。hash 是具有 String Key 和 String Value 的一个 map 容器。
具体设计为:
key: 学校+专业+年度+学期+科目
value: 试卷内容,jason 格式存储。
读写流程设计
1 老师创建试卷
老师登录管理系统, 根据学校信息,专业信息,年级信息, 学期信息和考试科目信息, 将试卷上传到正确的目录下保存。
2 学生考试读取试卷
学生考试时, 需要根据自己的学籍专业信息, 读取到相应的考卷信息, 下载到本地, 进行答卷。
服务器数量估算
老师课堂提到, QPS 峰值为 50000/s.
redis sentinel 采用 3 节点设计保证高可用, 但性能不用太高(8G 内存)。
redis 单机性能能够满足 qps50000/s 采用 1 台 redis master 加上 1 台 slave 服务器(都是 64G 内存)。
![](https://static001.geekbang.org/infoq/21/213305b7be0cd9dae3600123c16a883b.png)
评论