设计千万级学生管理系统的考试试卷存储方案
1 首先用户量预估
预估使用用户为 1000 万
2.关键行为
1.登录注册
2.文件上传和下载
3.选课
4.考试
1.登录
1.登录次数 3000/s
2.登录记录: 存储的数据量 40 亿条,存储容量 40G,写入的 TPS = 登录 TPS = 3000/s
2.登录注册
1.注册可以忽略不计
2.离校学生考试结果存储: 每年增长 0.5T
3.试卷请求的 TPS: 4 万/s
4.提交试卷 TPS: 1700/s
5:试卷存储: 每一学生对应有对门课程,并且每一个门课程都有 2 次考试次数,
鉴于考试试卷上述复杂度的分析结果,现在对于考试试卷的存储架构分析方案如下:
读取整个考据信息的流程如下 :
1.用户登录后,输入课程号进行自身考卷信息的查询,通过 Nginx 负载均衡访问 Redis,然后通过 redis 读取 Hbase 中的数据并且反馈给查询者
关于数据结构的分析:
Key : 学校 Id + 学生 Id + 课程号
Column Family : login
Column :学生 Id, 课程号
读写分析:
1.学生登录后,按照自身有的课程号进行查询即可
根据以上的分析,Redis 采用 Hash 的形式来存储考卷的信息比较合适
根据分析的性能的估算结果,Redis sentinel 的服务器数量为 4 台,每台大致能够对应于 10000 左右的访问量。
每台服务器的配置大致如下:
CPU: i7
内存:32GB
硬盘容量:1TB
评论